diff options
Diffstat (limited to 'tests/com/iciql/test')
-rw-r--r-- | tests/com/iciql/test/PrimitivesTest.java | 59 | ||||
-rw-r--r-- | tests/com/iciql/test/models/PrimitivesModel.java | 72 |
2 files changed, 131 insertions, 0 deletions
diff --git a/tests/com/iciql/test/PrimitivesTest.java b/tests/com/iciql/test/PrimitivesTest.java new file mode 100644 index 0000000..aee2479 --- /dev/null +++ b/tests/com/iciql/test/PrimitivesTest.java @@ -0,0 +1,59 @@ +/*
+ * 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 org.junit.Test;
+
+import com.iciql.Db;
+import com.iciql.test.models.PrimitivesModel;
+
+/**
+ * Tests primitives with autoboxing within the framework.
+ */
+public class PrimitivesTest {
+
+ @Test
+ public void testPrimitives() {
+ Db db = Db.open("jdbc:h2:mem:", "sa", "sa");
+
+ // insert random model
+ PrimitivesModel model = new PrimitivesModel();
+ db.insert(model);
+
+ PrimitivesModel p = new PrimitivesModel();
+
+ // retrieve model and compare
+ PrimitivesModel retrievedModel = db.from(p).selectFirst();
+ assertTrue(model.equivalentTo(retrievedModel));
+
+ // retrieve with conditions and compare
+// StatementLogger.activateConsoleLogger();
+// retrievedModel = db.from(p).where(p.myLong).is(model.myLong).and(p.myInteger).is(model.myInteger)
+// .selectFirst();
+// assertTrue(model.equivalentTo(retrievedModel));
+//
+// // update myInteger and compare
+// db.from(p).set(p.myInteger).to(10).where(p.myLong).is(model.myLong).update();
+// retrievedModel = db.from(p).selectFirst();
+
+// assertEquals(10, retrievedModel.myInteger);
+
+ db.close();
+ }
+}
diff --git a/tests/com/iciql/test/models/PrimitivesModel.java b/tests/com/iciql/test/models/PrimitivesModel.java new file mode 100644 index 0000000..2d1a7da --- /dev/null +++ b/tests/com/iciql/test/models/PrimitivesModel.java @@ -0,0 +1,72 @@ +/*
+ * 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.Random;
+
+import com.iciql.Iciql.IQColumn;
+import com.iciql.Iciql.IQTable;
+
+/**
+ * Primitive types model.
+ */
+@IQTable(name = "PrimitivesTest")
+public class PrimitivesModel {
+
+ @IQColumn(primaryKey = true)
+ public long myLong;
+
+ @IQColumn
+ public int myInteger;
+
+ @IQColumn
+ public short myShort;
+
+ @IQColumn
+ public byte myByte;
+
+ @IQColumn
+ public boolean myBoolean;
+
+ @IQColumn
+ public double myDouble;
+
+ @IQColumn
+ public float myFloat;
+
+ public PrimitivesModel() {
+ Random rand = new Random();
+ myLong = rand.nextLong();
+ myInteger = rand.nextInt();
+ myShort = (short) rand.nextInt(Short.MAX_VALUE);
+ myByte = (byte) rand.nextInt(Byte.MAX_VALUE);
+ myBoolean = rand.nextInt(1) == 1;
+ myDouble = rand.nextDouble();
+ myFloat = rand.nextFloat();
+ }
+
+ public boolean equivalentTo(PrimitivesModel p) {
+ boolean same = true;
+ same &= myLong == p.myLong;
+ same &= myInteger == p.myInteger;
+ same &= myShort == p.myShort;
+ same &= myByte == p.myByte;
+ same &= myBoolean == p.myBoolean;
+ same &= myDouble == p.myDouble;
+ same &= myFloat == p.myFloat;
+ return same;
+ }
+}
|