From 1a2339a9f1f96ddca64ab392dd7f9e1621e6c201 Mon Sep 17 00:00:00 2001 From: James Moger Date: Tue, 9 Aug 2011 11:28:48 -0400 Subject: IQTable.primaryKey is now an array. Default values from objects. Also fixed an error with allowing null objects. Noted rapid churn of iciql in documentation. Changed build constants for next release. --- tests/com/iciql/test/DefaultValuesTest.java | 61 ++++++++++++++++++++++ .../com/iciql/test/models/DefaultValuesModel.java | 58 ++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 tests/com/iciql/test/DefaultValuesTest.java create mode 100644 tests/com/iciql/test/models/DefaultValuesModel.java (limited to 'tests') diff --git a/tests/com/iciql/test/DefaultValuesTest.java b/tests/com/iciql/test/DefaultValuesTest.java new file mode 100644 index 0000000..b39dd7c --- /dev/null +++ b/tests/com/iciql/test/DefaultValuesTest.java @@ -0,0 +1,61 @@ +/* + * Copyright 2011 James Moger. + * + * 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 com.iciql.test; + +import static org.junit.Assert.assertTrue; + +import java.util.List; + +import org.junit.Test; + +import com.iciql.Db; +import com.iciql.DbInspector; +import com.iciql.ValidationRemark; +import com.iciql.test.models.DefaultValuesModel; + +/** + * Tests default object values. + */ +public class DefaultValuesTest { + + @Test + public void testDefaultObjectValues() { + Db db = Db.open("jdbc:h2:mem:", "sa", "sa"); + + // insert random model + DefaultValuesModel model = new DefaultValuesModel(); + db.insert(model); + + DefaultValuesModel v = new DefaultValuesModel(); + + // retrieve model and compare + DefaultValuesModel retrievedModel = db.from(v).selectFirst(); + assertTrue(model.myInteger.equals(retrievedModel.myInteger)); + assertTrue(model.myDate.equals(retrievedModel.myDate)); + assertTrue(model.myEnumIdTree.equals(retrievedModel.myEnumIdTree)); + assertTrue(model.myNameTree.equals(retrievedModel.myNameTree)); + assertTrue(model.myOrdinalTree.equals(retrievedModel.myOrdinalTree)); + assertTrue(retrievedModel.myNullTree == null); + + DbInspector inspector = new DbInspector(db); + List remarks = inspector.validateModel(model, false); + db.close(); + for (ValidationRemark remark : remarks) { + System.out.println(remark.toString()); + } + } +} diff --git a/tests/com/iciql/test/models/DefaultValuesModel.java b/tests/com/iciql/test/models/DefaultValuesModel.java new file mode 100644 index 0000000..2669257 --- /dev/null +++ b/tests/com/iciql/test/models/DefaultValuesModel.java @@ -0,0 +1,58 @@ +/* + * Copyright 2011 James Moger. + * + * 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 com.iciql.test.models; + +import java.util.Date; + +import com.iciql.Iciql.EnumType; +import com.iciql.Iciql.IQColumn; +import com.iciql.Iciql.IQEnum; +import com.iciql.Iciql.IQTable; +import com.iciql.test.models.EnumModels.Tree; + +/** + * Default values model. + */ +@IQTable(name = "DefaultValuesTest") +public class DefaultValuesModel { + + @IQColumn(primaryKey = true, autoIncrement = true) + public Long myLong; + + @SuppressWarnings("deprecation") + @IQColumn + public Date myDate = new Date(100, 7, 1); + + @IQColumn + public Integer myInteger = 12345; + + @IQColumn + public Tree myEnumIdTree = Tree.WALNUT; + + @IQColumn + @IQEnum(EnumType.NAME) + public Tree myNameTree = Tree.MAPLE; + + @IQColumn + @IQEnum(EnumType.ORDINAL) + public Tree myOrdinalTree = Tree.PINE; + + @IQColumn(allowNull = true) + public Tree myNullTree; + + public DefaultValuesModel() { + } +} -- cgit v1.2.3