public void testSampleDomainQuery11() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq("John") .and().having("addresses.postCode").eq("X1234") .and(qf.having("accountIds").eq(1)) .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("Doe", list.get(0).getSurname()); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014825: Query parameter 'param2' was not set") public void testMissingParamWithParameterMap() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .and().having("gender").eq(param("param2")) .build(); Map<String, Object> parameterMap = new HashMap<>(1); parameterMap.put("param1", "John"); q.setParameters(parameterMap); q.list(); }
public void testSampleDomainQuery7() { QueryFactory qf = getQueryFactory(); // all rent payments made from a given account Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("accountId").eq(1) .and().having("description").like("%rent%") .build(); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); assertEquals(1, list.get(0).getAccountId()); assertTrue(list.get(0).getDescription().contains("rent")); }
public void testAnd2() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq("Spider") .and(qf.having("surname").eq("Man")) .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(2, list.get(0).getId()); }
public void testSampleDomainQuery6() { QueryFactory qf = getQueryFactory(); // all users with a given name and surname Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq("John") .and().having("surname").eq("Doe") .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("John", list.get(0).getName()); assertEquals("Doe", list.get(0).getSurname()); }
public void testSampleDomainQuery10() { QueryFactory qf = getQueryFactory(); // all the transactions for a an account having amount greater than a given amount Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("accountId").eq(2) .and().having("amount").gt(40) .build(); List<Transaction> list = q.list(); assertEquals(52, list.size()); assertTrue(list.get(0).getAmount() > 40); assertTrue(list.get(1).getAmount() > 40); }
public void testAnd1() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq("Spider") .and().having("surname").eq("Man") .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(2, list.get(0).getId()); }
public void testEqHybridQuery() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("notes").eq("Lorem ipsum dolor sit amet") .and().having("surname").eq("Doe") .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); }
public void testNot4() { QueryFactory qf = getQueryFactory(); // NOT should have higher priority than AND Query q = qf.from(getModelFactory().getUserImplClass()) .having("surname").eq("Man") .and().not().having("name").eq("John") .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("Spider", list.get(0).getName()); }
public void testSampleDomainQuery12() { QueryFactory qf = getQueryFactory(); // all the transactions that represents credits to the account Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("accountId").eq(1) .and() .not().having("isDebit").eq(true).build(); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertFalse(list.get(0).isDebit()); }
public void testAnd3() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.MALE) .and().having("gender").eq(User.Gender.FEMALE) .build(); List<User> list = q.list(); assertEquals(0, list.size()); }
public void testNot3() { QueryFactory qf = getQueryFactory(); // NOT should have higher priority than AND Query q = qf.from(getModelFactory().getUserImplClass()) .not().having("name").eq("John") .and().having("surname").eq("Man") .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("Spider", list.get(0).getName()); }
public void testManyClauses() { QueryFactory qf = getQueryFactory(); QueryBuilder qb = qf.from(getModelFactory().getUserImplClass()); FilterConditionContext fcc = qb.having("name").eq("test"); for (int i = 0; i < 1024; i++) { fcc = fcc.and().having("name").eq("test" + i); } // This query is a boolean contradiction, so our smart query engine does not really execute it, // it just returns 0 results and that is fine. We just wanted to check it is parsed correctly. List<User> list = qb.build().list(); assertEquals(0, list.size()); }
public void testNot7() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.FEMALE) .and().not(qf.having("name").eq("Spider")) .build(); List<User> list = q.list(); assertTrue(list.isEmpty()); }
public void testEqHybridQueryWithParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("notes").eq("Lorem ipsum dolor sit amet") .and().having("surname").eq(param("surnameParam")) .build(); q.setParameter("surnameParam", "Doe"); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); }
public void testSampleDomainQuery18() { QueryFactory qf = getQueryFactory(); // all transactions of account with id 2 which have an amount larger than 1600 or their description contains the word 'rent' Query q = qf.from(getModelFactory().getTransactionImplClass()) .orderBy("description", SortOrder.ASC) .having("accountId").eq(1) .and(qf.having("amount").gt(1600) .or().having("description").like("%rent%")).build(); List<Transaction> list = q.list(); assertEquals(2, list.size()); assertEquals("Birthday present", list.get(0).getDescription()); assertEquals("Feb. rent payment", list.get(1).getDescription()); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014825: Query parameter 'param2' was not set") public void testMissingParam() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .and().having("gender").eq(param("param2")) .build(); q.setParameter("param1", "John"); q.list(); }
public void testOr5() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.MALE) .or().having("name").eq("Spider") .or().having("gender").eq(User.Gender.FEMALE) .and().having("surname").like("%oe%") .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("John", list.get(0).getName()); }
@Test public void testWithDifferentFactory2() { QueryFactory qf1 = new DummyQueryFactory(); QueryFactory qf2 = new DummyQueryFactory(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("ISPN014809: The given condition was created by another factory"); qf1.from("MyDummyType") .having("attr1").eq("1") .and(qf2.having("attr2").eq("2")); // exception expected }
@Test public void testWithDifferentBuilder2() { QueryFactory qf1 = new DummyQueryFactory(); FilterConditionContext fcc = qf1.having("attr1").eq("1"); Query q1 = qf1.from("MyDummyType") .not(fcc) .build(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("The given condition is already in use by another builder"); qf1.from("MyDummyType") .having("attr1").eq("1") .and(fcc); // exception expected }