Пример #1
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());
 }
Пример #2
0
 @Test
 public void testDeleteManyToMany() {
   final Person person = randomPerson();
   data.insert(person);
   final Collection<Group> groups = new ArrayList<>();
   data.runInTransaction(
       new Callable<Object>() {
         @Override
         public Object call() throws Exception {
           for (int i = 0; i < 10; i++) {
             Group group = new Group();
             group.setName("DeleteGroup" + i);
             data.insert(group);
             person.getGroups().add(group);
             groups.add(group);
           }
           data.update(person);
           return null;
         }
       });
   for (Group g : groups) {
     person.getGroups().remove(g);
   }
   data.update(person);
 }
Пример #3
0
 @Test
 public void testIterateInsertMany() {
   Person person = randomPerson();
   assertTrue(person.getGroups().toList().isEmpty());
   HashSet<Group> toAdd = new HashSet<>();
   for (int i = 0; i < 10; i++) {
     Group group = new Group();
     group.setName("Group" + i);
     person.getGroups().add(group);
     toAdd.add(group);
   }
   int count = 0;
   for (Group g : person.getGroups()) {
     assertTrue(toAdd.contains(g));
     count++;
   }
   assertEquals(10, count);
   data.insert(person);
 }
Пример #4
0
 @Test
 public void testInsertManyToMany() {
   Person person = randomPerson();
   data.insert(person);
   assertTrue(person.getGroups().toList().isEmpty());
   List<Group> added = new ArrayList<>();
   try (Transaction transaction = data.transaction().begin()) {
     for (int i = 0; i < 10; i++) {
       Group group = new Group();
       group.setName("Group" + i);
       group.setDescription("Some description");
       group.setType(GroupType.PRIVATE);
       data.insert(group);
       person.getGroups().add(group);
       added.add(group);
     }
     data.update(person);
     transaction.commit();
   }
   data.refresh(person, Person.GROUPS);
   assertTrue(added.containsAll(person.getGroups().toList()));
 }