[Jiemamy-notify:2344] commit [3348] テスト追加。

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2009年 5月 3日 (日) 18:02:57 JST


Revision: 3348
          http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=3348
Author:   daisuke_m
Date:     2009-05-03 18:02:57 +0900 (Sun, 03 May 2009)

Log Message:
-----------
テスト追加。

Modified Paths:
--------------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/validator/impl/CheckConstraintValidator.java

Added Paths:
-----------
    artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/validator/impl/CheckConstraintValidatorTest.java


-------------- next part --------------
Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/validator/impl/CheckConstraintValidator.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/validator/impl/CheckConstraintValidator.java	2009-05-03 08:49:22 UTC (rev 3347)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/validator/impl/CheckConstraintValidator.java	2009-05-03 09:02:57 UTC (rev 3348)
@@ -105,7 +105,7 @@
 			registerMessage(Locale.JAPAN, "テーブル{0}の{1}番目のチェック制約に制約式がありません");
 			setArguments(new Object[] {
 				tableModel.getName(),
-				index
+				index + 1
 			});
 		}
 		

Added: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/validator/impl/CheckConstraintValidatorTest.java
===================================================================
--- artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/validator/impl/CheckConstraintValidatorTest.java	                        (rev 0)
+++ artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/validator/impl/CheckConstraintValidatorTest.java	2009-05-03 09:02:57 UTC (rev 3348)
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2007-2009 Jiemamy Project and the Others.
+ * Created on 2009/05/03
+ *
+ * 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.validator.impl;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.util.Collection;
+import java.util.Locale;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.jiemamy.Jiemamy;
+import org.jiemamy.JiemamyFactory;
+import org.jiemamy.dialect.BuiltinDataTypeMold;
+import org.jiemamy.model.RootModel;
+import org.jiemamy.model.attribute.ColumnModel;
+import org.jiemamy.model.attribute.constraint.ColumnCheckConstraint;
+import org.jiemamy.model.attribute.constraint.TableCheckConstraint;
+import org.jiemamy.model.entity.TableModel;
+import org.jiemamy.validator.Problem;
+
+/**
+ * {@link CheckConstraintValidator}のテストクラス。
+ * 
+ * @author daisuke
+ */
+public class CheckConstraintValidatorTest {
+	
+	/** テスト対象のバリデータ */
+	private CheckConstraintValidator validator;
+	
+
+	/**
+	 * テストを初期化する。
+	 * 
+	 * @throws Exception 例外が発生した場合
+	 */
+	@Before
+	public void setUp() throws Exception {
+		validator = new CheckConstraintValidator();
+	}
+	
+	/**
+	 * テストの情報を破棄する。
+	 * 
+	 * @throws Exception 例外が発生した場合
+	 */
+	@After
+	public void tearDown() throws Exception {
+		validator = null;
+	}
+	
+	/**
+	 * エンティティ名の重複バリデーションが正常に行われる。
+	 * 
+	 * @throws Exception 例外が発生した場合
+	 */
+	@Test
+	public void test01_エンティティ名の重複バリデーションが正常に行われる() throws Exception {
+		Jiemamy jiemamy = Jiemamy.newInstance();
+		JiemamyFactory factory = jiemamy.getFactory();
+		RootModel rootModel = factory.getRootModel();
+		
+		TableModel tableModel1 = factory.newModel(TableModel.class);
+		tableModel1.setName("foo");
+		rootModel.getEntities().add(tableModel1);
+		
+		ColumnModel columnModel = factory.newModel(ColumnModel.class);
+		columnModel.setName("bar");
+		columnModel.setDataType(factory.newDataType(BuiltinDataTypeMold.UNKNOWN));
+		
+		tableModel1.getAttributes().add(columnModel);
+		
+		Collection<Problem> result1 = validator.validate(rootModel);
+		assertThat(result1.size(), is(0)); // 問題なし
+		
+		TableCheckConstraint tableCheckConstraint = factory.newModel(TableCheckConstraint.class);
+		tableCheckConstraint.setName("tcc");
+		tableModel1.getAttributes().add(tableCheckConstraint);
+		
+		Collection<Problem> result2 = validator.validate(rootModel);
+		assertThat(result2.size(), is(1)); // 問題1つ
+		
+		Problem problem1 = result2.iterator().next();
+		assertThat(problem1, is(instanceOf(CheckConstraintValidator.EmptyExpressionProblem.class)));
+		assertThat(problem1.getMessage(Locale.JAPAN), is("テーブルfooの1番目のチェック制約に制約式がありません"));
+		assertThat(problem1.getErrorCode(), is("E0031"));
+		
+		tableCheckConstraint.setExpression("bar > 0");
+		
+		Collection<Problem> result3 = validator.validate(rootModel);
+		assertThat(result3.size(), is(0)); // 問題なし
+		
+		ColumnCheckConstraint columnCheckConstraint = factory.newModel(ColumnCheckConstraint.class);
+		columnCheckConstraint.setName("ccc");
+		columnModel.setCheckConstraint(columnCheckConstraint);
+		
+		Collection<Problem> result4 = validator.validate(rootModel);
+		assertThat(result4.size(), is(1)); // 問題1つ
+		
+		Problem problem2 = result4.iterator().next();
+		assertThat(problem2, is(instanceOf(CheckConstraintValidator.EmptyExpressionProblem.class)));
+		assertThat(problem2.getMessage(Locale.JAPAN), is("テーブルfooのカラムbarに設定されたチェック制約に制約式がありません"));
+		assertThat(problem2.getErrorCode(), is("E0030"));
+		
+	}
+}


Property changes on: artemis/trunk/jiemamy-core/src/test/java/org/jiemamy/validator/impl/CheckConstraintValidatorTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain



Jiemamy-notify メーリングリストの案内
アーカイブの一覧に戻る