Search in sources :

Example 31 with Person

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

the class FunctionalTest method testInsertManyToManySelfReferencing.

@Test
public void testInsertManyToManySelfReferencing() {
    Person person = randomPerson();
    data.insert(person);
    List<Person> added = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        Person p = randomPerson();
        person.getFriends().add(p);
        added.add(p);
    }
    data.update(person);
    assertTrue(added.containsAll(person.getFriends()));
    int count = data.count(Person.class).get().value();
    assertEquals(11, count);
}
Also used : ArrayList(java.util.ArrayList) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 32 with Person

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

the class FunctionalTest method testInsertConcurrent.

@Test
public void testInsertConcurrent() throws InterruptedException {
    ExecutorService executorService = Executors.newFixedThreadPool(3);
    final int count = 3;
    final CountDownLatch latch = new CountDownLatch(count);
    final Map<Integer, Person> map = new HashMap<>();
    for (int i = 0; i < count; i++) {
        executorService.submit(new Callable<Person>() {

            @Override
            public Person call() throws Exception {
                Person person = randomPerson();
                data.insert(person);
                assertTrue(person.getId() > 0);
                map.put(person.getId(), person);
                latch.countDown();
                return person;
            }
        });
    }
    assertTrue(latch.await(10, TimeUnit.SECONDS));
    for (Map.Entry<Integer, Person> entry : map.entrySet()) {
        Person cached = data.select(Person.class).where(Person.ID.equal(entry.getKey())).get().first();
        assertSame(cached, entry.getValue());
    }
    executorService.shutdownNow();
}
Also used : ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) ExecutorService(java.util.concurrent.ExecutorService) CountDownLatch(java.util.concurrent.CountDownLatch) Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) StatementExecutionException(io.requery.sql.StatementExecutionException) RollbackException(io.requery.RollbackException) SQLException(java.sql.SQLException) PersistenceException(io.requery.PersistenceException) RowCountException(io.requery.sql.RowCountException) Test(org.junit.Test)

Example 33 with Person

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

the class FunctionalTest method testQueryCase.

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

Example 34 with Person

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

the class FunctionalTest method testInsertIntoSelectQuery.

@Test
public void testInsertIntoSelectQuery() {
    Group group = new Group();
    group.setName("Bob");
    group.setDescription("Bob's group");
    data.insert(group);
    int count = data.insert(Person.class, Person.NAME, Person.DESCRIPTION).query(data.select(Group.NAME, Group.DESCRIPTION)).get().first().count();
    assertEquals(1, count);
    Person p = data.select(Person.class).get().first();
    assertEquals("Bob", p.getName());
    assertEquals("Bob's group", p.getDescription());
}
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 35 with Person

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

the class FunctionalTest method testUpdateNoChanges.

@Test
public void testUpdateNoChanges() {
    Person person = randomPerson();
    data.insert(person);
    assertTrue(person.getId() > 0);
    data.update(person);
}
Also used : 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