[Jiemamy-notify:2675] commit [3616] RootModelの終了スクリプト出力タイミングで、開始スクリプトを出力していた。

Back to archive index

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




Jiemamy-notify メーリングリストの案内
Back to archive index