Search in sources :

Example 1 with Domain

use of org.qi4j.test.indexing.model.Domain in project qi4j-sdk by Qi4j.

the class AbstractQueryTest method script23.

@Test
public void script23() throws EntityFinderException {
    QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
    Person person = templateFor(Person.class);
    Domain interests = oneOf(person.interests());
    Query<Person> query = unitOfWork.newQuery(qb.where(eq(interests.name(), "Cars")));
    System.out.println("*** script23: " + query);
    verifyOrderedResults(query, "Jack Doe");
}
Also used : Domain(org.qi4j.test.indexing.model.Domain) Person(org.qi4j.test.indexing.model.Person) Test(org.junit.Test)

Example 2 with Domain

use of org.qi4j.test.indexing.model.Domain in project qi4j-sdk by Qi4j.

the class TestData method populate.

static void populate(Module module) throws UnitOfWorkCompletionException {
    try (UnitOfWork unitOfWork = module.newUnitOfWork()) {
        NameableAssert.clear();
        Domain gaming;
        {
            EntityBuilder<Domain> domainBuilder = unitOfWork.newEntityBuilder(Domain.class, "Gaming");
            gaming = domainBuilder.instance();
            gaming.name().set("Gaming");
            gaming.description().set("Gaming domain");
            gaming = domainBuilder.newInstance();
            NameableAssert.trace(gaming);
        }
        Domain programming;
        {
            EntityBuilder<Domain> domainBuilder = unitOfWork.newEntityBuilder(Domain.class);
            programming = domainBuilder.instance();
            programming.name().set("Programming");
            programming.description().set("Programing domain");
            programming = domainBuilder.newInstance();
            NameableAssert.trace(programming);
        }
        Domain cooking;
        {
            EntityBuilder<Domain> domainBuilder = unitOfWork.newEntityBuilder(Domain.class);
            cooking = domainBuilder.instance();
            cooking.name().set("Cooking");
            cooking.description().set("Cooking domain");
            cooking = domainBuilder.newInstance();
            NameableAssert.trace(cooking);
        }
        Domain cars;
        {
            EntityBuilder<Domain> domainBuilder = unitOfWork.newEntityBuilder(Domain.class);
            cars = domainBuilder.instance();
            cars.name().set("Cars");
            cars.description().set("Cars");
            cars = domainBuilder.newInstance();
            NameableAssert.trace(cars);
        }
        City kualaLumpur;
        {
            EntityBuilder<City> cityBuilder = unitOfWork.newEntityBuilder(City.class);
            kualaLumpur = cityBuilder.instance();
            kualaLumpur.name().set("Kuala Lumpur");
            kualaLumpur.country().set("Malaysia");
            kualaLumpur.county().set("Some Jaya");
            kualaLumpur = cityBuilder.newInstance();
            NameableAssert.trace(kualaLumpur);
        }
        City penang;
        {
            EntityBuilder<City> cityBuilder = unitOfWork.newEntityBuilder(City.class);
            penang = cityBuilder.instance();
            penang.name().set("Penang");
            penang.country().set("Malaysia");
            penang.county().set("Some Other Jaya");
            penang = cityBuilder.newInstance();
            NameableAssert.trace(penang);
        }
        Account annsAccount;
        {
            EntityBuilder<Account> accountBuilder = unitOfWork.newEntityBuilder(Account.class, "accountOfAnnDoe");
            annsAccount = accountBuilder.instance();
            annsAccount.number().set("accountOfAnnDoe");
            annsAccount = accountBuilder.newInstance();
        }
        Account jacksAccount;
        {
            EntityBuilder<Account> accountBuilder = unitOfWork.newEntityBuilder(Account.class, "accountOfJackDoe");
            jacksAccount = accountBuilder.instance();
            jacksAccount.number().set("accountOfJackDoe");
            jacksAccount = accountBuilder.newInstance();
        }
        ValueBuilder<Address> addressBuilder = module.newValueBuilder(Address.class);
        Address address = addressBuilder.prototype();
        address.line1().set("Qi Street 4j");
        address.line2().set("Off main Java Street");
        address.zipcode().set("12345");
        Female annDoe;
        {
            EntityBuilder<FemaleEntity> femaleBuilder = unitOfWork.newEntityBuilder(FemaleEntity.class, "anndoe");
            annDoe = femaleBuilder.instance();
            annDoe.name().set("Ann Doe");
            annDoe.title().set(Person.Title.MRS);
            annDoe.placeOfBirth().set(kualaLumpur);
            annDoe.yearOfBirth().set(1975);
            annDoe.interests().add(0, cooking);
            annDoe.password().set("passwordOfAnnDoe");
            annDoe.mainAccount().set(annsAccount);
            annDoe.accounts().put("anns", annsAccount);
            annDoe.accounts().put("jacks", jacksAccount);
            annDoe.address().set(addressBuilder.newInstance());
            annDoe = femaleBuilder.newInstance();
            NameableAssert.trace(annDoe);
        }
        {
            EntityBuilder<MaleEntity> maleBuilder = unitOfWork.newEntityBuilder(MaleEntity.class);
            Male joeDoe = maleBuilder.instance();
            joeDoe.name().set("Joe Doe");
            joeDoe.title().set(Person.Title.MR);
            joeDoe.placeOfBirth().set(kualaLumpur);
            joeDoe.yearOfBirth().set(1990);
            joeDoe.mother().set(annDoe);
            joeDoe.interests().add(0, programming);
            joeDoe.interests().add(0, gaming);
            joeDoe.email().set("joe@thedoes.net");
            joeDoe.password().set("passwordOfJoeDoe");
            joeDoe = maleBuilder.newInstance();
            address = module.newValueBuilderWithPrototype(address).prototype();
            address.line1().set("Qi Alley 4j");
            joeDoe.address().set(address);
            joeDoe.bigInteger().set(new BigInteger("23232323232323232323232323"));
            joeDoe.bigDecimal().set(new BigDecimal("23.4276931348623157e+309"));
            joeDoe.dateValue().set(new DateTime("2020-03-04T13:24:35", UTC).toDate());
            joeDoe.dateTimeValue().set(new DateTime("2020-03-04T13:24:35", UTC));
            joeDoe.localDateTimeValue().set(new LocalDateTime("2020-03-04T13:23:00"));
            joeDoe.localDateValue().set(new LocalDate("2020-03-04"));
            NameableAssert.trace(joeDoe);
        }
        {
            EntityBuilder<MaleEntity> maleBuilder = unitOfWork.newEntityBuilder(MaleEntity.class);
            Male jackDoe = maleBuilder.instance();
            jackDoe.name().set("Jack Doe");
            jackDoe.title().set(Person.Title.DR);
            jackDoe.placeOfBirth().set(penang);
            jackDoe.yearOfBirth().set(1970);
            jackDoe.interests().add(0, cars);
            jackDoe.wife().set(annDoe);
            jackDoe.password().set("passwordOfJohnDoe");
            jackDoe.mainAccount().set(jacksAccount);
            jackDoe.accounts().put("anns", annsAccount);
            jackDoe.accounts().put("jacks", jacksAccount);
            address = module.newValueBuilderWithPrototype(address).prototype();
            address.line1().set("Qi Avenue 4j");
            jackDoe.address().set(address);
            jackDoe.bigInteger().set(new BigInteger("42424242424242424242424242"));
            jackDoe.bigDecimal().set(new BigDecimal("42.2376931348623157e+309"));
            jackDoe.dateValue().set(new DateTime("2010-03-04T13:24:35", UTC).toDate());
            jackDoe.dateTimeValue().set(new DateTime("2010-03-04T13:24:35", UTC));
            jackDoe.localDateTimeValue().set(new LocalDateTime("2010-03-04T13:23:00"));
            jackDoe.localDateValue().set(new LocalDate("2010-03-04"));
            ValueBuilder<URL> urlBuilder = module.newValueBuilder(URL.class);
            ValueBuilder<Protocol> protocolBuilder = module.newValueBuilder(Protocol.class);
            ValueBuilder<QueryParam> queryParamBuilder = module.newValueBuilder(QueryParam.class);
            Protocol protocol = protocolBuilder.prototype();
            protocol.value().set("http");
            List<QueryParam> queryParams = new ArrayList<>(2);
            QueryParam param = queryParamBuilder.prototype();
            param.name().set("user");
            param.value().set("jackdoe");
            queryParams.add(queryParamBuilder.newInstance());
            queryParamBuilder = module.newValueBuilder(QueryParam.class);
            param = queryParamBuilder.prototype();
            param.name().set("password");
            param.value().set("somepassword");
            queryParams.add(queryParamBuilder.newInstance());
            URL url = urlBuilder.prototype();
            url.protocol().set(protocolBuilder.newInstance());
            url.queryParams().set(queryParams);
            jackDoe.personalWebsite().set(urlBuilder.newInstance());
            jackDoe = maleBuilder.newInstance();
            NameableAssert.trace(jackDoe);
        }
        {
            EntityBuilder<CatEntity> catBuilder = unitOfWork.newEntityBuilder(CatEntity.class);
            Cat felix = catBuilder.instance();
            felix.name().set("Felix");
            catBuilder.newInstance();
        }
        unitOfWork.complete();
    }
}
Also used : LocalDateTime(org.joda.time.LocalDateTime) ValueBuilder(org.qi4j.api.value.ValueBuilder) UnitOfWork(org.qi4j.api.unitofwork.UnitOfWork) Account(org.qi4j.test.indexing.model.Account) Address(org.qi4j.test.indexing.model.Address) Male(org.qi4j.test.indexing.model.Male) CatEntity(org.qi4j.test.indexing.model.entities.CatEntity) EntityBuilder(org.qi4j.api.entity.EntityBuilder) City(org.qi4j.test.indexing.model.City) MaleEntity(org.qi4j.test.indexing.model.entities.MaleEntity) LocalDate(org.joda.time.LocalDate) BigDecimal(java.math.BigDecimal) DateTime(org.joda.time.DateTime) LocalDateTime(org.joda.time.LocalDateTime) URL(org.qi4j.test.indexing.model.URL) QueryParam(org.qi4j.test.indexing.model.QueryParam) FemaleEntity(org.qi4j.test.indexing.model.entities.FemaleEntity) Cat(org.qi4j.test.indexing.model.Cat) Female(org.qi4j.test.indexing.model.Female) BigInteger(java.math.BigInteger) ArrayList(java.util.ArrayList) List(java.util.List) Domain(org.qi4j.test.indexing.model.Domain) Protocol(org.qi4j.test.indexing.model.Protocol)

Example 3 with Domain

use of org.qi4j.test.indexing.model.Domain in project qi4j-sdk by Qi4j.

the class AbstractQueryTest method script33.

@Test
public void script33() {
    QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
    Person person = templateFor(Person.class);
    Domain gaming = unitOfWork.get(Domain.class, "Gaming");
    Query<Person> query = unitOfWork.newQuery(qb.where(contains(person.interests(), gaming)));
    System.out.println("*** script33: " + query);
    verifyUnorderedResults(query, "Joe Doe");
}
Also used : Domain(org.qi4j.test.indexing.model.Domain) Person(org.qi4j.test.indexing.model.Person) Test(org.junit.Test)

Example 4 with Domain

use of org.qi4j.test.indexing.model.Domain in project qi4j-sdk by Qi4j.

the class AbstractQueryTest method script24.

@Test
public void script24() throws EntityFinderException {
    final QueryBuilder<Domain> qb = this.module.newQueryBuilder(Domain.class);
    final Nameable nameable = templateFor(Nameable.class);
    final Query<Domain> query = unitOfWork.newQuery(qb.where(eq(nameable.name(), "Gaming")));
    System.out.println("*** script24: " + query);
    assertThat(query.find().name().get(), is(equalTo("Gaming")));
}
Also used : Nameable(org.qi4j.test.indexing.model.Nameable) Domain(org.qi4j.test.indexing.model.Domain) Test(org.junit.Test)

Example 5 with Domain

use of org.qi4j.test.indexing.model.Domain in project qi4j-sdk by Qi4j.

the class AbstractQueryTest method script02.

@Test
public void script02() throws EntityFinderException {
    final QueryBuilder<Domain> qb = this.module.newQueryBuilder(Domain.class);
    final Nameable nameable = templateFor(Nameable.class);
    final Query<Domain> query = unitOfWork.newQuery(qb.where(eq(nameable.name(), "Gaming")));
    System.out.println("*** script02: " + query);
    verifyUnorderedResults(query, "Gaming");
}
Also used : Nameable(org.qi4j.test.indexing.model.Nameable) Domain(org.qi4j.test.indexing.model.Domain) Test(org.junit.Test)

Aggregations

Domain (org.qi4j.test.indexing.model.Domain)5 Test (org.junit.Test)4 Nameable (org.qi4j.test.indexing.model.Nameable)2 Person (org.qi4j.test.indexing.model.Person)2 BigDecimal (java.math.BigDecimal)1 BigInteger (java.math.BigInteger)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 DateTime (org.joda.time.DateTime)1 LocalDate (org.joda.time.LocalDate)1 LocalDateTime (org.joda.time.LocalDateTime)1 EntityBuilder (org.qi4j.api.entity.EntityBuilder)1 UnitOfWork (org.qi4j.api.unitofwork.UnitOfWork)1 ValueBuilder (org.qi4j.api.value.ValueBuilder)1 Account (org.qi4j.test.indexing.model.Account)1 Address (org.qi4j.test.indexing.model.Address)1 Cat (org.qi4j.test.indexing.model.Cat)1 City (org.qi4j.test.indexing.model.City)1 Female (org.qi4j.test.indexing.model.Female)1 Male (org.qi4j.test.indexing.model.Male)1