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