Esempio n. 1
0
 @Test
 public void testEqualsHashCode() {
   Person p1 = new Person();
   p1.setAge(10);
   p1.setName("Bob");
   p1.setEmail("*****@*****.**");
   Person p2 = new Person();
   p2.setAge(10);
   p2.setName("Bob");
   p2.setEmail("*****@*****.**");
   assertEquals(p1, p2);
   assertEquals(p1.hashCode(), p2.hashCode());
 }
Esempio n. 2
0
 @Test
 public void testQueryLike() {
   Person person = randomPerson();
   person.setName("Carol");
   data.insert(person);
   person = randomPerson();
   person.setName("Bob");
   data.insert(person);
   Person a = data.select(Person.class).where(Person.NAME.like("B%")).get().first();
   assertSame(a, person);
   a = data.select(Person.class).where(Person.NAME.lower().like("b%")).get().first();
   assertSame(a, person);
   Person b = data.select(Person.class).where(Person.NAME.notLike("B%")).get().firstOrNull();
   assertTrue(b != person);
 }
Esempio n. 3
0
 @Test
 public void testQuerySelectWhereIn() {
   final String name = "Hello!";
   Person person = randomPerson();
   person.setName(name);
   data.insert(person);
   Group group = new Group();
   group.setName("Hello!");
   data.insert(group);
   person.getGroups().add(group);
   data.update(person);
   Return<Result<Tuple>> groupNames = data.select(Group.NAME).where(Group.NAME.equal(name));
   Person p = data.select(Person.class).where(Person.NAME.in(groupNames)).get().first();
   assertEquals(p.getName(), name);
   p = data.select(Person.class).where(Person.NAME.notIn(groupNames)).get().firstOrNull();
   assertNull(p);
   p =
       data.select(Person.class)
           .where(Person.NAME.in(Arrays.asList("Hello!", "Other")))
           .get()
           .first();
   assertEquals(p.getName(), name);
   p =
       data.select(Person.class)
           .where(Person.NAME.in(Collections.singleton("Hello!")))
           .get()
           .first();
   assertEquals(p.getName(), name);
   assertTrue(
       data.select(Person.class)
           .where(Person.NAME.notIn(Collections.singleton("Hello!")))
           .get()
           .toList()
           .isEmpty());
 }
Esempio n. 4
0
 @Test
 public void testUpdate() {
   Person person = randomPerson();
   data.insert(person);
   assertTrue(person.getId() > 0);
   person.setName("Bob Smith");
   Calendar calendar = Calendar.getInstance();
   calendar.set(1983, Calendar.NOVEMBER, 11);
   person.setBirthday(calendar.getTime());
   EntityProxy<Person> proxy = Person.$TYPE.proxyProvider().apply(person);
   int count = 0;
   for (Property ignored :
       proxy.filterProperties(
           new Predicate<Property<Person, ?>>() {
             @Override
             public boolean test(Property value) {
               return value.state() == PropertyState.MODIFIED;
             }
           })) {
     count++;
   }
   assertEquals(2, count);
   data.update(person);
   for (Property ignored :
       proxy.filterProperties(
           new Predicate<Property<Person, ?>>() {
             @Override
             public boolean test(Property value) {
               return value.state() == PropertyState.MODIFIED;
             }
           })) {
     fail();
   }
 }
Esempio n. 5
0
 @Test
 public void testQuerySelectTrim() {
   // TODO fix use ltrim/rtrim for SQLServer
   Person person = randomPerson();
   person.setName("  Name  ");
   data.insert(person);
   Tuple result = data.select(Person.NAME.trim().as("name")).get().first();
   String name = result.get(0);
   assertEquals(name, "Name");
 }
Esempio n. 6
0
 @Test
 public void testQuerySelectDistinct() {
   for (int i = 0; i < 10; i++) {
     Person person = randomPerson();
     person.setName(String.valueOf(i / 2));
     data.insert(person);
   }
   try (Result<Tuple> result = data.select(Person.NAME).distinct().get()) {
     assertEquals(5, result.toList().size());
   }
 }
Esempio n. 7
0
 @Test
 public void testDeleteAll() {
   final String name = "someName";
   for (int i = 0; i < 10; i++) {
     Person person = randomPerson();
     person.setName(name);
     data.insert(person);
   }
   assertTrue(data.delete(Person.class).get().value() > 0);
   assertTrue(data.select(Person.class).get().toList().isEmpty());
 }
Esempio n. 8
0
 @Test
 public void testQueryCoalesce() {
   Person person = randomPerson();
   person.setName("Carol");
   person.setEmail(null);
   data.insert(person);
   person = randomPerson();
   person.setName("Bob");
   person.setEmail("*****@*****.**");
   person.setHomepage(null);
   data.insert(person);
   Result<Tuple> result = data.select(Coalesce.coalesce(Person.EMAIL, Person.NAME)).get();
   List<Tuple> list = result.toList();
   List<String> values = new ArrayList<>();
   for (Tuple tuple : list) {
     values.add(tuple.get(0).toString());
   }
   assertEquals(values.size(), 2);
   assertTrue(values.contains("Carol"));
   assertTrue(values.contains("*****@*****.**"));
 }
Esempio n. 9
0
 @Test
 public void testQuerySelectCountWhere() {
   for (int i = 0; i < 10; i++) {
     Person person = randomPerson();
     if (i == 0) {
       person.setName("countme");
     }
     data.insert(person);
   }
   assertEquals(
       1, data.count(Person.class).where(Person.NAME.eq("countme")).get().value().intValue());
 }
Esempio n. 10
0
 @Test
 public void testSingleQueryWhereNull() {
   data.delete(Person.class).where(Person.NAME.isNull()).get();
   Person person = randomPerson();
   person.setName(null);
   data.insert(person);
   try (Result<Person> query = data.select(Person.class).where(Person.NAME.equal(null)).get()) {
     assertEquals(1, query.toList().size());
   }
   try (Result<Person> query = data.select(Person.class).where(Person.NAME.isNull()).get()) {
     assertEquals(1, query.toList().size());
   }
 }
Esempio n. 11
0
 @Test
 public void testSingleQueryWhere() {
   final String name = "duplicateFirstName";
   data.delete(Person.class).where(Person.NAME.equal(name)).get();
   for (int i = 0; i < 10; i++) {
     Person person = randomPerson();
     person.setName(name);
     data.insert(person);
   }
   try (Result<Person> query = data.select(Person.class).where(Person.NAME.equal(name)).get()) {
     assertEquals(10, query.toList().size());
   }
 }
Esempio n. 12
0
 @Test
 public void testQueryUnion() {
   Person person = randomPerson();
   person.setName("Carol");
   data.insert(person);
   Group group = new Group();
   group.setName("Hello!");
   data.insert(group);
   List<Tuple> result =
       data.select(Person.NAME.as("name"))
           .union()
           .select(Group.NAME.as("name"))
           .orderBy(Group.NAME.as("name"))
           .get()
           .toList();
   assertTrue(result.size() == 2);
   assertTrue(result.get(0).get(0).equals("Carol"));
   assertTrue(result.get(1).get(0).equals("Hello!"));
 }
Esempio n. 13
0
  @Test
  public void testQueryCase() {
    String[] names = new String[] {"Carol", "Bob", "Jack"};
    for (String name : names) {
      Person person = randomPerson();
      person.setName(name);
      data.insert(person);
    }
    Result<Tuple> a =
        data.select(
                Person.NAME,
                Case.type(String.class)
                    .when(Person.NAME.equal("Bob"), "B")
                    .when(Person.NAME.equal("Carol"), "C")
                    .elseThen("Unknown"))
            .from(Person.class)
            .orderBy(Person.NAME)
            .get();
    List<Tuple> list = a.toList();
    assertTrue(list.get(0).get(1).equals("B"));
    assertTrue(list.get(1).get(1).equals("C"));
    assertTrue(list.get(2).get(1).equals("Unknown"));

    a =
        data.select(
                Person.NAME,
                Case.type(Integer.class)
                    .when(Person.NAME.equal("Bob"), 1)
                    .when(Person.NAME.equal("Carol"), 2)
                    .elseThen(0))
            .orderBy(Person.NAME)
            .get();
    list = a.toList();
    assertTrue(list.get(0).get(1).equals(1));
    assertTrue(list.get(1).get(1).equals(2));
    assertTrue(list.get(2).get(1).equals(0));
  }