use of io.requery.test.model.Group in project requery by requery.
the class FunctionalTest method testInsertManyToMany.
@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()));
for (Group group : added) {
assertTrue(group.getMembers().toList().contains(person));
}
}
use of io.requery.test.model.Group in project requery by requery.
the class FunctionalTest method testQueryUnion.
@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!"));
}
use of io.requery.test.model.Group in project requery by requery.
the class FunctionalTest method testManyOrderBy.
@Test
public void testManyOrderBy() {
Group group = new Group();
group.setName("Group");
data.insert(group);
for (int i = 3; i >= 0; i--) {
Person person = randomPerson();
person.setName(new String(Character.toChars(65 + i)));
data.insert(person);
group.getOwners().add(person);
}
data.update(group);
data.refresh(group, Group.OWNERS);
List<Person> list = group.getOwners().toList();
assertEquals("A", list.get(0).getName());
assertEquals("B", list.get(1).getName());
assertEquals("C", list.get(2).getName());
}
use of io.requery.test.model.Group in project requery by requery.
the class FunctionalTest method testVersionIncrement.
@Test
public void testVersionIncrement() {
Group group = new Group();
group.setName("group");
group.setType(GroupType.PRIVATE);
data.insert(group);
group.setType(GroupType.PUBLIC);
data.update(group);
data.refresh(group, Group.VERSION);
//System.out.println("group.version + " + group.version());
assertTrue(group.getVersion() > 0);
Group group2 = new Group();
group2.setName("group2");
group2.setType(GroupType.PRIVATE);
data.insert(group2);
data.refresh(Arrays.asList(group, group2), Group.VERSION);
}
use of io.requery.test.model.Group in project requery by requery.
the class FunctionalTest method testQuerySelectWhereIn.
@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<? extends 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());
}
Aggregations