Search in sources :

Example 6 with Group

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));
    }
}
Also used : Group(io.requery.test.model.Group) Transaction(io.requery.Transaction) ArrayList(java.util.ArrayList) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 7 with Group

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!"));
}
Also used : Group(io.requery.test.model.Group) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Tuple(io.requery.query.Tuple) Test(org.junit.Test)

Example 8 with Group

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());
}
Also used : Group(io.requery.test.model.Group) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 9 with Group

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);
}
Also used : Group(io.requery.test.model.Group) Test(org.junit.Test)

Example 10 with Group

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());
}
Also used : Group(io.requery.test.model.Group) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Tuple(io.requery.query.Tuple) Test(org.junit.Test)

Aggregations

Group (io.requery.test.model.Group)10 Test (org.junit.Test)10 Group_Person (io.requery.test.model.Group_Person)8 Person (io.requery.test.model.Person)8 Tuple (io.requery.query.Tuple)2 ArrayList (java.util.ArrayList)2 PersistenceException (io.requery.PersistenceException)1 RollbackException (io.requery.RollbackException)1 Transaction (io.requery.Transaction)1 Attribute (io.requery.meta.Attribute)1 CompositeKey (io.requery.proxy.CompositeKey)1 SQLException (java.sql.SQLException)1 HashSet (java.util.HashSet)1 LinkedHashMap (java.util.LinkedHashMap)1