Search in sources :

Example 36 with Person

use of io.requery.test.model.Person in project requery by requery.

the class FunctionalTest method testInsertOneToOneCascade.

@Test
public void testInsertOneToOneCascade() {
    Address address = randomAddress();
    Person person = randomPerson();
    person.setAddress(address);
    data.insert(person);
    // fetch inverse
    assertSame(address.getPerson(), person);
}
Also used : Address(io.requery.test.model.Address) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 37 with Person

use of io.requery.test.model.Person in project requery by requery.

the class FunctionalTest method testRefreshAttributes.

@Test
public void testRefreshAttributes() {
    Person person = randomPerson();
    data.insert(person);
    Phone phone = randomPhone();
    person.getPhoneNumbers().add(phone);
    data.update(person);
    data.refresh(person, Person.NAME, Person.PHONE_NUMBERS_SET, Person.ADDRESS, Person.EMAIL);
    assertTrue(person.getPhoneNumbersSet().contains(phone));
}
Also used : Phone(io.requery.test.model.Phone) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 38 with Person

use of io.requery.test.model.Person in project requery by requery.

the class FunctionalTest method testEqualsHashCode.

@Test
public void testEqualsHashCode() {
    Person p1 = new Person();
    p1.setAge(10);
    p1.setName("Bob");
    p1.setEmail("test@test.com");
    Person p2 = new Person();
    p2.setAge(10);
    p2.setName("Bob");
    p2.setEmail("test@test.com");
    assertEquals(p1, p2);
    assertEquals(p1.hashCode(), p2.hashCode());
}
Also used : Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 39 with Person

use of io.requery.test.model.Person in project requery by requery.

the class FunctionalTest method testQueryRaw.

@Test
public void testQueryRaw() {
    final int count = 5;
    List<Person> people = new ArrayList<>();
    for (int i = 0; i < count; i++) {
        Person person = randomPerson();
        data.insert(person);
        people.add(person);
    }
    List<Long> resultIds = new ArrayList<>();
    try (Result<Tuple> result = data.raw("select * from Person")) {
        List<Tuple> list = result.toList();
        assertEquals(count, list.size());
        for (int i = 0; i < people.size(); i++) {
            Tuple tuple = list.get(i);
            String name = tuple.get("name");
            assertEquals(people.get(i).getName(), name);
            Number id = tuple.get("id");
            assertEquals(people.get(i).getId(), id.intValue());
            resultIds.add(id.longValue());
        }
    }
    try (Result<Tuple> result = data.raw("select * from Person WHERE id IN ?", resultIds)) {
        List<Tuple> list = result.toList();
        List<Long> ids = new ArrayList<>(list.size());
        for (Tuple tuple : list) {
            ids.add(tuple.<Number>get("id").longValue());
        }
        assertEquals(resultIds, ids);
    }
    try (Result<Tuple> result = data.raw("select count(*) from Person")) {
        // can be long or int depending on db
        Number number = result.first().get(0);
        assertEquals(count, number.intValue());
    }
    try (Result<Tuple> result = data.raw("select * from Person WHERE id = ?", people.get(0))) {
        assertEquals(result.first().<Number>get("id").intValue(), people.get(0).getId());
    }
}
Also used : ArrayList(java.util.ArrayList) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Tuple(io.requery.query.Tuple) Test(org.junit.Test)

Example 40 with Person

use of io.requery.test.model.Person in project requery by requery.

the class FunctionalTest method testQueryByForeignKey.

@Test
public void testQueryByForeignKey() {
    Person person = randomPerson();
    data.insert(person);
    Phone phone1 = randomPhone();
    Phone phone2 = randomPhone();
    person.getPhoneNumbers().add(phone1);
    person.getPhoneNumbers().add(phone2);
    data.update(person);
    assertTrue(person.getPhoneNumbersSet().contains(phone1));
    try (Result<Phone> result = data.select(Phone.class).where(Phone.OWNER.eq(person)).get()) {
        assertTrue(person.getPhoneNumbersList().containsAll(result.toList()));
        assertEquals(2, person.getPhoneNumbersList().size());
        assertEquals(2, result.toList().size());
    }
    // by id
    try (Result<Phone> result = data.select(Phone.class).where(Phone.OWNER_ID.eq(person.getId())).get()) {
        assertTrue(person.getPhoneNumbersList().containsAll(result.toList()));
        assertEquals(2, person.getPhoneNumbersList().size());
        assertEquals(2, result.toList().size());
    }
}
Also used : Phone(io.requery.test.model.Phone) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Aggregations

Person (io.requery.test.model.Person)127 Test (org.junit.Test)122 Group_Person (io.requery.test.model.Group_Person)80 Phone (io.requery.test.model.Phone)24 ArrayList (java.util.ArrayList)18 Tuple (io.requery.query.Tuple)13 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)10 Group (io.requery.test.model.Group)9 Result (io.requery.query.Result)8 Address (io.requery.test.model.Address)8 HashSet (java.util.HashSet)7 CountDownLatch (java.util.concurrent.CountDownLatch)6 ReactiveResult (io.requery.reactivex.ReactiveResult)5 RxResult (io.requery.rx.RxResult)5 SQLException (java.sql.SQLException)5 Disposable (io.reactivex.disposables.Disposable)4 Function (io.reactivex.functions.Function)4 Calendar (java.util.Calendar)4 Subscription (rx.Subscription)4 PersistenceException (io.requery.PersistenceException)3