/** Test the inverse of LESS THAN */ @Test public void testInverseOfLT() { query.addFilter(new LessThanFilter("accessLevel", 5)); List<User> users = processor.execute(query); Query<User> refQuery = new Query<User>(User.class); refQuery.addFilter(new GreaterOrEqualFilter("accessLevel", 5)); List<User> usersGE5 = processor.execute(refQuery); List<User> ref = userDAO.findAll(); ref.removeAll(usersGE5); assertEquals(ref.size(), users.size()); assertTrue(users.containsAll(ref)); }
/** Test if the {@link NotFilter} is correct */ @Test public void testNot() { Product p = productDAO.findByName("P1").get(0); query.addFilter(new NotFilter(new EqualFilter("product", p))); List<Ticket> tickets = processor.execute(query); Query<Ticket> refQuery = new Query<Ticket>(Ticket.class); refQuery.addFilter(new EqualFilter("product", p)); List<Ticket> ticketsForProduct = processor.execute(refQuery); List<Ticket> ref = ticketDAO.findAll(); ref.removeAll(ticketsForProduct); assertEquals(ref.size(), tickets.size()); assertTrue(tickets.containsAll(ref)); }
/** * Test an execution of a {@link Query} with a {@link LessThanFilter}. The following conditions * are checked :<br> * * <ul> * <li>The list contains 1 user * <li>The list contains the user "U3" * </ul> */ @Test public void testLessThanFilterQuery() { query.addFilter(new LessThanFilter("accessLevel", 5)); List<User> users = processor.execute(query); assertEquals(1, users.size()); assertTrue(users.contains(userDAO.findByLogin("user3"))); }
/** * Execute the query * * @param command The query command * @return The view which will be display */ @RequestMapping(value = "contact/search", method = RequestMethod.POST) public ModelAndView search(@ModelAttribute("contactQuery") ContactQueryCommand command) { Map<String, Object> map = new HashMap<String, Object>(); List<Contact> result = null; Query<Contact> query = new Query<Contact>(Contact.class); if (!command.getContactName().isEmpty()) { if (command.getMatchMode() == ContactQueryCommand.EXACT_MATCH_MODE) { query.addFilter(new EqualFilter("name", command.getContactName())); } else { query.addFilter(new LikeFilter("name", command.getContactName())); } } result = contactDAO.filter(query); map.put("result", result); return new ModelAndView("contact/result", map); }
/** * Test an execution of a {@link Query} with a {@link NotFilter}. The following conditions are * checked :<br> * * <ul> * <li>The list contains 2 tickets * <li>The list contains the ticket "T4" * <li>The list contains the ticket "T5" * </ul> */ @Test public void testNotFilterQuery() { Product p = productDAO.findByName("P1").get(0); query.addFilter(new NotFilter(new EqualFilter("product", p))); List<Ticket> tickets = processor.execute(query); assertEquals(2, tickets.size()); assertTrue(tickets.contains(ticketDAO.findByTitle("T4").get(0))); assertTrue(tickets.contains(ticketDAO.findByTitle("T5").get(0))); }
/** * Test if an {@link IllegalArgumentException} is thrown by passing a <code>null</code> argument * to {@link NotFilter} */ @Test(expected = IllegalArgumentException.class) public void testNotFilterWithNullArgument() { query.addFilter(new NotFilter(null)); processor.execute(query); }
/** * Test if an {@link IllegalArgumentException} is thrown by passing a <code>null</code> value * argument to {@link LessThanFilter} */ @Test(expected = IllegalArgumentException.class) public void testLessThanFilterWithNullValue() { query.addFilter(new LessThanFilter("accessLevel", null)); processor.execute(query); }
/** * Test if an {@link IllegalArgumentException} is thrown by passing a <code>null</code> property * argument to {@link LessThanFilter} */ @Test(expected = IllegalArgumentException.class) public void testLessThanFilterWithNullProperty() { query.addFilter(new LessThanFilter(null, 5)); processor.execute(query); }
/** * Test if an {@link ClassCastException} is thrown by passing an invalid value argument to {@link * LessThanFilter} */ @Test(expected = ClassCastException.class) public void testLessThanFilterWithInvalidArguments() { query.addFilter(new LessThanFilter("accessLevel", "five")); processor.execute(query); }