1 package org.cateproject.controller.common;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.UUID;
6
7 import org.cateproject.controller.taxon.TaxonController;
8
9 import org.easymock.EasyMock;
10 import org.joda.time.format.ISODateTimeFormat;
11 import org.junit.Assert;
12 import org.junit.Before;
13 import org.junit.Ignore;
14 import org.junit.Test;
15 import org.springframework.test.web.ModelAndViewAssert;
16 import org.springframework.web.servlet.ModelAndView;
17 import org.unitils.UnitilsJUnit4;
18 import org.unitils.easymock.annotation.Mock;
19 import org.unitils.inject.annotation.InjectInto;
20 import org.unitils.inject.annotation.TestedObject;
21
22 import eu.etaxonomy.cdm.api.service.IAnnotationService;
23 import eu.etaxonomy.cdm.api.service.ITaxonService;
24 import eu.etaxonomy.cdm.api.service.pager.Pager;
25 import eu.etaxonomy.cdm.model.common.Annotation;
26 import eu.etaxonomy.cdm.model.common.MarkerType;
27 import eu.etaxonomy.cdm.model.common.User;
28 import eu.etaxonomy.cdm.model.taxon.Taxon;
29 import eu.etaxonomy.cdm.persistence.query.OrderHint;
30 import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
31
32 @Ignore
33 public class AnnotatableControllerTest extends UnitilsJUnit4 {
34
35 @Mock
36 @InjectInto(property = "service")
37 private ITaxonService taxonService;
38
39 @Mock
40 @InjectInto(property = "annotationService")
41 private IAnnotationService annotationService;
42
43 @TestedObject
44 private TaxonController taxonController;
45
46 private Annotation parent;
47 private Taxon taxon;
48 private UUID uuid;
49 private UUID uuid2;
50 private List<Annotation> records;
51 private Pager pager;
52 private List list;
53
54 @Before
55 public void setUp() throws Exception {
56 annotationService = EasyMock.createMock(IAnnotationService.class);
57 taxonService = EasyMock.createMock(ITaxonService.class);
58 taxonController = new TaxonController();
59
60
61 parent = Annotation.NewDefaultLanguageInstance(null);
62 taxon = Taxon.NewInstance(null, null);
63 uuid = UUID.fromString("ab5b10e0-6456-11dd-ad8b-0800200c9a66");
64 uuid2 = UUID.fromString("ab5b10e0-6456-11dd-ad8b-0800200c9a67");
65 User user = User.NewInstance("ben",null);
66
67 Annotation annotation = Annotation.NewDefaultLanguageInstance("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin eros lacus, dictum molestie, laoreet vitae, pharetra vitae, enim. Praesent vel nisi. Vestibulum at quam. Sed nisi augue, <a href='google.html'>imperdiet sit amet</a>, blandit ac, mattis ac, ante. Curabitur malesuada dignissim dui. Suspendisse potenti. Maecenas sagittis nisi. Aliquam et ante commodo quam hendrerit condimentum. Morbi quam ante, vestibulum quis, scelerisque vitae, viverra eleifend, lectus. Sed eu magna eget ante porttitor porta. Ut vitae tortor. Etiam vel est et mauris rutrum mattis. In hac habitasse platea dictumst.");
68 annotation.setId(2l);
69 annotation.setAnnotatedObj(parent);
70 annotation.setCreatedBy(user);
71 annotation.setCreated(ISODateTimeFormat.dateTime().parseDateTime("2007-05-29T00:00:00.000Z"));
72 records = new ArrayList<Annotation>();
73 records.add(annotation);
74 records.add(annotation);
75 records.add(annotation);
76
77 pager = EasyMock.createMock(Pager.class);
78 list = new ArrayList<Annotation>();
79 }
80
81 @Test
82 public void testGetAnnotations() throws Exception {
83 EasyMock.expect(taxonService.load(EasyMock.eq(uuid),EasyMock.isA(List.class))).andReturn(taxon);
84 EasyMock.expect(taxonService.getAnnotations(EasyMock.eq(taxon),EasyMock.same(MarkerType.COMPLETE()),EasyMock.eq(30),EasyMock.eq(0), EasyMock.isA(List.class), EasyMock.isA(List.class))).andReturn(pager);
85
86 EasyMock.replay(annotationService,taxonService,pager);
87
88 ModelAndView modelAndView = taxonController.getAnnotations(uuid, 0, 30, new ArrayList<OrderHint>());
89
90 EasyMock.verify(annotationService,taxonService,pager);
91
92 Assert.assertNotNull(modelAndView);
93 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "pager", pager);
94 }
95 }