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);
}
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();
}
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));
}
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());
}
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);
}
Aggregations