svnno****@sourc*****
svnno****@sourc*****
2009年 9月 19日 (土) 05:11:56 JST
Revision: 3616 http://sourceforge.jp/projects/jiemamy/svn/view?view=rev&revision=3616 Author: daisuke_m Date: 2009-09-19 05:11:56 +0900 (Sat, 19 Sep 2009) Log Message: ----------- RootModelの終了スクリプト出力タイミングで、開始スクリプトを出力していた。 テストケース作成と共にバグ修正。 Modified Paths: -------------- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/SqlEmitter.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/AroundScriptImpl.java Added Paths: ----------- artemis/trunk/jiemamy-core/src/main/resources/META-INF/services/org.jiemamy.ScriptEngine artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitterTest.java Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/SqlEmitter.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/SqlEmitter.java 2009-09-18 19:44:18 UTC (rev 3615) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/SqlEmitter.java 2009-09-18 20:11:56 UTC (rev 3616) @@ -35,10 +35,10 @@ * RootModelからSQLのリストを生成する。 * * @param rootModel 対象{@link RootModel} - * @param instrunction 設定 + * @param config 設定 * @return SQLのリスト * @throws IllegalArgumentException 引数に{@code null}を与えた場合 */ - List<SqlStatement> emit(RootModel rootModel, EmitConfig instrunction); + List<SqlStatement> emit(RootModel rootModel, EmitConfig config); } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java 2009-09-18 19:44:18 UTC (rev 3615) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java 2009-09-18 20:11:56 UTC (rev 3616) @@ -175,7 +175,7 @@ result.add(new SqlStatementImpl(Keyword.of("COMMIT"), Separator.SEMICOLON)); } - emitScript(rootModel, Position.BEGIN, result); + emitScript(rootModel, Position.END, result); return result; } Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/AroundScriptImpl.java =================================================================== --- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/AroundScriptImpl.java 2009-09-18 19:44:18 UTC (rev 3615) +++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/AroundScriptImpl.java 2009-09-18 20:11:56 UTC (rev 3616) @@ -77,8 +77,8 @@ public String process(ServiceLocator serviceLocator, Position position, T target) throws ClassNotFoundException { ScriptEngine engine; - engine = serviceLocator.getService(ScriptEngine.class, scriptEngineClassNames.get(position)); - return engine.process(target, scripts.get(position)); + engine = serviceLocator.getService(ScriptEngine.class, getScriptEngineClassName(position)); + return engine.process(target, getScript(position)); } public void setScript(Position position, String script) { Added: artemis/trunk/jiemamy-core/src/main/resources/META-INF/services/org.jiemamy.ScriptEngine =================================================================== --- artemis/trunk/jiemamy-core/src/main/resources/META-INF/services/org.jiemamy.ScriptEngine (rev 0) +++ artemis/trunk/jiemamy-core/src/main/resources/META-INF/services/org.jiemamy.ScriptEngine 2009-09-18 20:11:56 UTC (rev 3616) @@ -0,0 +1 @@ +org.jiemamy.script.PlainScriptEngine Added: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitterTest.java =================================================================== --- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitterTest.java (rev 0) +++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitterTest.java 2009-09-18 20:11:56 UTC (rev 3616) @@ -0,0 +1,108 @@ +/* + * Copyright 2007-2009 Jiemamy Project and the Others. + * Created on 2009/09/19 + * + * This file is part of Jiemamy. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package org.jiemamy.dialect.internal.impl; + +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + +import java.util.List; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import org.jiemamy.Jiemamy; +import org.jiemamy.dialect.EmitConfig; +import org.jiemamy.dialect.internal.SqlEmitter; +import org.jiemamy.internal.test.mock.MockDataTypeResolver; +import org.jiemamy.internal.test.mock.MockDialect; +import org.jiemamy.internal.test.mock.MockServiceLocator; +import org.jiemamy.model.RootModel; +import org.jiemamy.model.script.AroundScript; +import org.jiemamy.model.script.Position; +import org.jiemamy.model.sql.SqlStatement; + +/** + * TODO for daisuke + * + * @since 0.3 + * @author daisuke + */ +public class DefaultSqlEmitterTest { + + private SqlEmitter sqlEmitter; + + + /** + * テストを初期化する。 + * + * @throws Exception 例外が発生した場合 + */ + @Before + public void setUp() throws Exception { + sqlEmitter = new DefaultSqlEmitter(new MockDataTypeResolver()); + } + + /** + * テストの情報を破棄する。 + * + * @throws Exception 例外が発生した場合 + */ + @After + public void tearDown() throws Exception { + sqlEmitter = null; + } + + /** + * TODO for daisuke + * + * @throws Exception 例外が発生した場合 + */ + @Test + public void test01_rootModelのaroundScriptが正常に出力される() throws Exception { + Jiemamy jiemamy = Jiemamy.newInstance(new MockServiceLocator()); + RootModel rootModel = jiemamy.getFactory().getRootModel(); + rootModel.setDialectClassName(MockDialect.class.getName()); + AroundScript<RootModel> aroundScript = rootModel.getAroundScript(); + aroundScript.setScript(Position.BEGIN, "beeefore"); + aroundScript.setScript(Position.END, "aaaafter"); + + List<SqlStatement> statements = sqlEmitter.emit(rootModel, new EmitConfig() { + + public boolean emitCreateSchemaStatement() { + return false; + } + + public boolean emitDropStatements() { + return false; + } + + public int getDataSetIndex() { + return -1; + } + }); + + assertThat(statements.size(), is(2)); + assertThat(statements.get(0).toTokens().size(), is(1)); + assertThat(statements.get(0).toTokens().get(0).toString(), is("beeefore")); + assertThat(statements.get(1).toTokens().size(), is(1)); + assertThat(statements.get(1).toTokens().get(0).toString(), is("aaaafter")); + } + +} Property changes on: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitterTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain