}
@Test
public void annotationFindersTests() throws ParseException {
// create a user
User user = UsersBusiness.persistUserByUsernameAndPassword("new_user",
"fake_password");
Assert.assertArrayEquals(new Object[] { "new_user", "fake_password" },
new Object[] { user.getUsername(), user.getPassword() });
// create a client
Client client = ClientsBusiness.addClientByClientName(user,
"new_client");
Assert.assertEquals("new_client", client.getName());
// create general book
GeneralBook generalBook = new GeneralBook();
generalBook.setClient(client);
generalBook.setDescription("general_book_description");
generalBook.setName("general_book");
generalBook = BooksBusiness.addBook(generalBook);
// create a generic annotation
Annotation annotation = new GeneralIncomeAnnotation();
annotation.setBook(generalBook);
annotation.setTwoDecimalLongCodifiedAmount(1000L * 100L); // 1000.00
annotation.setConcept("test");
Date date = new SimpleDateFormat("dd-MM-yyyy").parse("11-11-2013");
annotation.setDate(date);
annotation = AnnotationsBusiness.createAnnotation(annotation);
Assert.assertEquals(generalBook, annotation.getBook());
Assert.assertEquals(new Long(1000L * 100L),
annotation.getTwoDecimalLongCodifiedAmount());
Assert.assertEquals("test", annotation.getConcept());
Assert.assertEquals(date, annotation.getDate());
// find annotation for current client
List<Annotation> annotations = AnnotationsBusiness
.getAnnotationsWithFilter(Optional.<AnnotationType>absent(),
BookSelection.fromBook(generalBook),
Optional.<Integer>of(2013), ClientDomainType.CURRENT_CLIENT, SortingCriteria.ASCENDING,
AnnotationsFilter.emptyAnnotationsFilter());
Assert.assertEquals(new Integer(1), new Integer(annotations.size()));
Assert.assertEquals(annotation, annotations.iterator().next());
// find annotation all clients
annotations = AnnotationsBusiness.getAnnotationsWithFilter(Optional.<AnnotationType>absent(),
BookSelection.fromBook(generalBook),
Optional.<Integer>of(2013), ClientDomainType.ALL_CLIENTS, SortingCriteria.ASCENDING,
AnnotationsFilter.emptyAnnotationsFilter());
Assert.assertEquals(new Integer(1), new Integer(annotations.size()));
Assert.assertEquals(annotation, annotations.iterator().next());
// find annotation all clients
annotations = AnnotationsBusiness.getAnnotationsWithFilter(Optional.<AnnotationType>absent(),
BookSelection.fromBook(generalBook),
Optional.<Integer>of(2011), ClientDomainType.ALL_CLIENTS, SortingCriteria.ASCENDING,
AnnotationsFilter.emptyAnnotationsFilter());
Assert.assertEquals(new Integer(0), new Integer(annotations.size()));
// create another user
User secondUser = UsersBusiness.persistUserByUsernameAndPassword(
"new_user_2", "fake_password_2");
Assert.assertArrayEquals(
new Object[] { "new_user_2", "fake_password_2" }, new Object[] {
secondUser.getUsername(), secondUser.getPassword() });
// create another client
Client secondClient = ClientsBusiness.addClientByClientName(secondUser,
"new_client_2");
Assert.assertEquals("new_client_2", secondClient.getName());