Search in sources :

Example 6 with QueryParam

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

the class TestData method populate.

static void populate(Module module) throws UnitOfWorkCompletionException {
    UnitOfWork unitOfWork = module.newUnitOfWork();
    try {
        ValueBuilderFactory valueBuilderFactory = module;
        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);
            annsAccount = accountBuilder.instance();
            annsAccount.number().set("accountOfAnnDoe");
            annsAccount = accountBuilder.newInstance();
        }
        Account jacksAccount;
        {
            EntityBuilder<Account> accountBuilder = unitOfWork.newEntityBuilder(Account.class);
            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().add(0, annsAccount);
            annDoe.accounts().add(0, 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);
            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().add(0, annsAccount);
            jackDoe.accounts().add(0, jacksAccount);
            address = module.newValueBuilderWithPrototype(address).prototype();
            address.line1().set("Qi Avenue 4j");
            jackDoe.address().set(address);
            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<QueryParam>();
            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");
            felix = catBuilder.newInstance();
            // NameableAssert.trace( felix );
            unitOfWork.complete();
        }
    } finally {
        unitOfWork.discard();
    }
}
Also used : 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) ValueBuilderFactory(org.qi4j.api.value.ValueBuilderFactory) EntityBuilder(org.qi4j.api.entity.EntityBuilder) City(org.qi4j.test.indexing.model.City) MaleEntity(org.qi4j.test.indexing.model.entities.MaleEntity) 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) ArrayList(java.util.ArrayList) List(java.util.List) Domain(org.qi4j.test.indexing.model.Domain) Protocol(org.qi4j.test.indexing.model.Protocol)

Example 7 with QueryParam

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

the class AbstractQueryTest method script30.

@Test
@Ignore("Wait till 1.1?")
public void script30() {
    QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
    Person person = templateFor(Person.class);
    // oneOf( person.personalWebsite().get().queryParams() );
    QueryParam queryParam = null;
    Query<Person> query = unitOfWork.newQuery(qb.where(and(eq(queryParam.name(), "foo"), eq(queryParam.value(), "bar"))));
    System.out.println("*** script30: " + query);
    verifyUnorderedResults(query, "Jack Doe");
}
Also used : QueryParam(org.qi4j.test.indexing.model.QueryParam) Person(org.qi4j.test.indexing.model.Person) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 8 with QueryParam

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

the class AbstractComplexQueryTest method script07.

@Test
public void script07() {
    ValueBuilder<URL> urlBuilder = this.module.newValueBuilder(URL.class);
    ValueBuilder<Protocol> protocolBuilder = this.module.newValueBuilder(Protocol.class);
    ValueBuilder<QueryParam> queryParamBuilder = this.module.newValueBuilder(QueryParam.class);
    Protocol protocol = protocolBuilder.prototype();
    protocol.value().set("http");
    List<QueryParam> queryParams = new ArrayList<QueryParam>();
    QueryParam param = queryParamBuilder.prototype();
    param.name().set("user");
    param.value().set("jackdoe");
    queryParams.add(queryParamBuilder.newInstance());
    queryParamBuilder = this.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);
    QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
    Property<URL> websiteProp = templateFor(Person.class).personalWebsite();
    qb = qb.where(not(eq(websiteProp, urlBuilder.newInstance())));
    Query<Person> query = unitOfWork.newQuery(qb);
    System.out.println("*** script07: " + query);
    verifyUnorderedResults(query, ANN, JOE);
}
Also used : QueryParam(org.qi4j.test.indexing.model.QueryParam) ArrayList(java.util.ArrayList) Protocol(org.qi4j.test.indexing.model.Protocol) Person(org.qi4j.test.indexing.model.Person) URL(org.qi4j.test.indexing.model.URL) Test(org.junit.Test)

Example 9 with QueryParam

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

the class AbstractComplexQueryTest method script04.

@Test
public void script04() {
    ValueBuilder<QueryParam> queryParamBuilder = this.module.newValueBuilder(QueryParam.class);
    List<QueryParam> queryParams = new ArrayList<QueryParam>();
    QueryParam param = queryParamBuilder.prototype();
    // Different order
    param.name().set("password");
    param.value().set("somepassword");
    queryParams.add(queryParamBuilder.newInstance());
    queryParamBuilder = this.module.newValueBuilder(QueryParam.class);
    param = queryParamBuilder.prototype();
    param.name().set("user");
    param.value().set("jackdoe");
    queryParams.add(queryParamBuilder.newInstance());
    QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
    Property<Collection<QueryParam>> paramsProp = templateFor(Person.class).personalWebsite().get().queryParams();
    qb = qb.where(eq(paramsProp, queryParams));
    Query<Person> query = unitOfWork.newQuery(qb);
    System.out.println("*** script04: " + query);
    verifyUnorderedResults(query);
}
Also used : QueryParam(org.qi4j.test.indexing.model.QueryParam) ArrayList(java.util.ArrayList) Collection(java.util.Collection) Person(org.qi4j.test.indexing.model.Person) Test(org.junit.Test)

Example 10 with QueryParam

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

the class AbstractComplexQueryTest method script10.

@Test
public void script10() {
    ValueBuilder<QueryParam> queryParamBuilder = this.module.newValueBuilder(QueryParam.class);
    List<QueryParam> queryParams = new ArrayList<QueryParam>();
    QueryParam param = queryParamBuilder.prototype();
    param.name().set("user");
    param.value().set("jackdoe");
    queryParams.add(queryParamBuilder.newInstance());
    queryParamBuilder = this.module.newValueBuilder(QueryParam.class);
    param = queryParamBuilder.prototype();
    param.name().set("password");
    param.value().set("somepassword");
    queryParams.add(queryParamBuilder.newInstance());
    QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
    Property<Collection<QueryParam>> paramsProp = templateFor(Person.class).personalWebsite().get().queryParams();
    qb = qb.where(containsAll(paramsProp, queryParams));
    Query<Person> query = unitOfWork.newQuery(qb);
    System.out.println("*** script10: " + query);
    verifyUnorderedResults(query, JACK);
}
Also used : QueryParam(org.qi4j.test.indexing.model.QueryParam) ArrayList(java.util.ArrayList) Collection(java.util.Collection) Person(org.qi4j.test.indexing.model.Person) Test(org.junit.Test)

Aggregations

QueryParam (org.qi4j.test.indexing.model.QueryParam)11 Test (org.junit.Test)10 Person (org.qi4j.test.indexing.model.Person)10 ArrayList (java.util.ArrayList)8 Collection (java.util.Collection)7 Protocol (org.qi4j.test.indexing.model.Protocol)3 URL (org.qi4j.test.indexing.model.URL)3 List (java.util.List)1 Ignore (org.junit.Ignore)1 EntityBuilder (org.qi4j.api.entity.EntityBuilder)1 UnitOfWork (org.qi4j.api.unitofwork.UnitOfWork)1 ValueBuilder (org.qi4j.api.value.ValueBuilder)1 ValueBuilderFactory (org.qi4j.api.value.ValueBuilderFactory)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 Domain (org.qi4j.test.indexing.model.Domain)1 Female (org.qi4j.test.indexing.model.Female)1 Male (org.qi4j.test.indexing.model.Male)1