123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /*
- * 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.assertEquals;
- import static org.junit.Assert.assertTrue;
-
- import java.util.ArrayList;
- import java.util.List;
- import java.util.UUID;
-
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
-
- import com.iciql.Db;
- import com.iciql.Iciql.IQColumn;
- import com.iciql.Iciql.IQTable;
-
- /**
- * Tests of UUID type.
- * <p>
- * H2 only.
- */
- public class UUIDTest {
-
- Db db;
-
- @Before
- public void setup() {
- db = IciqlSuite.openNewDb();
- }
-
- @After
- public void tearDown() {
- db.close();
- }
-
- @Test
- public void testUUIDs() throws Exception {
- if (!IciqlSuite.isH2(db)) {
- // do not test non-H2 databases
- return;
- }
- List<UUIDRecord> originals = UUIDRecord.getList();
- db.insertAll(originals);
- UUIDRecord u = new UUIDRecord();
- List<UUIDRecord> retrieved = db.from(u).orderBy(u.id).select();
- assertEquals(originals.size(), retrieved.size());
- for (int i = 0; i < originals.size(); i++) {
- UUIDRecord a = originals.get(i);
- UUIDRecord b = retrieved.get(i);
- assertTrue(a.equivalentTo(b));
- }
-
- UUIDRecord second = db.from(u).where(u.uuid).is(originals.get(1).uuid).selectFirst();
- assertTrue(originals.get(1).equivalentTo(second));
- }
-
- /**
- * A simple class used in this test.
- */
- @IQTable(name = "UUID_TEST")
- public static class UUIDRecord {
-
- @IQColumn(primaryKey = true)
- public Integer id;
-
- @IQColumn()
- public UUID uuid;
-
- public UUIDRecord() {
- // public constructor
- }
-
- private UUIDRecord(int id) {
- this.id = id;
- this.uuid = UUID.randomUUID();
- }
-
- public boolean equivalentTo(UUIDRecord b) {
- boolean same = true;
- same &= id == b.id;
- same &= uuid.equals(b.uuid);
- return same;
- }
-
- public String toString() {
- return id + ": " + uuid;
- }
-
- public static List<UUIDRecord> getList() {
- List<UUIDRecord> list = new ArrayList<UUIDRecord>();
- for (int i = 0; i < 10; i++) {
- list.add(new UUIDRecord(i + 1));
- }
- return list;
- }
- }
- }
|