Search in sources :

Example 51 with Person

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

the class FunctionalTest method testQueryConsume.

@Test
public void testQueryConsume() {
    int count = 10;
    for (int i = 0; i < count; i++) {
        Person person = randomPerson();
        data.insert(person);
    }
    final int[] counts = new int[] { 0 };
    Result<Person> result = data.select(Person.class).get();
    result.each(new Consumer<Person>() {

        @Override
        public void accept(Person e) {
            counts[0] = counts[0] + 1;
        }
    });
    assertEquals(counts[0], count);
}
Also used : Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 52 with Person

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

the class FunctionalTest method testQueryGroupBy.

@Test
public void testQueryGroupBy() {
    for (int i = 0; i < 5; i++) {
        Person person = randomPerson();
        person.setAge(i);
        data.insert(person);
    }
    try (Result<Tuple> result = data.select(Person.AGE).groupBy(Person.AGE).having(Person.AGE.greaterThan(3)).get()) {
        assertTrue(result.toList().size() == 1);
    }
    assertTrue(data.select(Person.AGE).groupBy(Person.AGE).having(Person.AGE.lessThan(0)).get().toList().isEmpty());
}
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 53 with Person

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

the class FunctionalTest method testQueryUpdate.

@Test
public void testQueryUpdate() {
    Person person = randomPerson();
    person.setAge(100);
    data.insert(person);
    int rowCount = data.update(Person.class).set(Person.ABOUT, "nothing").set(Person.AGE, 50).where(Person.AGE.equal(100)).get().value();
    assertEquals(1, rowCount);
}
Also used : Person(io.requery.test.model.Person) Group_Person(io.requery.test.model.Group_Person) Test(org.junit.Test)

Example 54 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 55 with Person

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

the class BenchmarkTest method queryJdbc.

@Benchmark
@BenchmarkMode(Mode.SingleShotTime)
public void queryJdbc() throws SQLException {
    try (Connection connection = dataSource.getConnection();
        PreparedStatement statement = connection.prepareStatement("SELECT id , name , email , birthday," + " age, homepage, uuid FROM Person LIMIT 10000 ")) {
        try (ResultSet resultSet = statement.executeQuery()) {
            while (resultSet.next()) {
                //id
                resultSet.getLong(1);
                String name = resultSet.getString(2);
                String email = resultSet.getString(3);
                Date birthday = resultSet.getDate(4);
                Integer age = resultSet.getInt(5);
                String home = resultSet.getString(6);
                byte[] uuid = resultSet.getBytes(7);
                Person p = new Person();
                p.setName(name);
                p.setEmail(email);
                p.setUUID(uuid == null ? null : UUID.nameUUIDFromBytes(uuid));
                p.setBirthday(birthday);
                p.setHomepage(home == null ? null : new URL(home));
                p.setAge(age);
            }
        }
    } catch (MalformedURLException e) {
        throw new RuntimeException();
    }
}
Also used : MalformedURLException(java.net.MalformedURLException) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement) Person(io.requery.test.model.Person) Date(java.sql.Date) URL(java.net.URL) BenchmarkMode(org.openjdk.jmh.annotations.BenchmarkMode) Benchmark(org.openjdk.jmh.annotations.Benchmark)

Aggregations

Person (io.requery.test.model.Person)120 Test (org.junit.Test)117 Group_Person (io.requery.test.model.Group_Person)75 Phone (io.requery.test.model.Phone)22 ArrayList (java.util.ArrayList)18 Tuple (io.requery.query.Tuple)12 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)10 Result (io.requery.query.Result)8 Address (io.requery.test.model.Address)8 Group (io.requery.test.model.Group)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 Calendar (java.util.Calendar)4 Subscription (rx.Subscription)4 Function (io.reactivex.functions.Function)3 PersistenceException (io.requery.PersistenceException)3