1 package org.cateproject.controller.taxon;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.UUID;
6
7 import org.easymock.EasyMock;
8 import org.junit.Before;
9 import org.junit.Test;
10 import org.springframework.test.web.ModelAndViewAssert;
11 import org.springframework.web.servlet.ModelAndView;
12 import org.unitils.UnitilsJUnit4;
13 import org.unitils.easymock.annotation.Mock;
14 import org.unitils.inject.annotation.InjectInto;
15 import org.unitils.inject.annotation.TestedObject;
16
17 import eu.etaxonomy.cdm.api.service.ITaxonService;
18 import eu.etaxonomy.cdm.api.service.ITermService;
19 import eu.etaxonomy.cdm.api.service.pager.Pager;
20 import eu.etaxonomy.cdm.model.taxon.Taxon;
21 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
22 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
23 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
24 import eu.etaxonomy.cdm.persistence.query.OrderHint;
25 import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
26
27 public class TaxonListControllerTest extends UnitilsJUnit4 {
28
29 @Mock
30 @InjectInto(property = "service")
31 private ITaxonService taxonService;
32
33 @Mock
34 @InjectInto(property = "termService")
35 ITermService termService;
36
37 @TestedObject
38 private TaxonListController taxonController;
39
40 private Taxon taxon;
41 private Pager<TaxonRelationship> pager;
42 private Pager<TaxonBase> searchResults;
43 private TaxonRelationshipType isParentTaxonOf;
44 private UUID uuid;
45 private UUID type;
46
47
48 @Before
49 public void setUp() {
50 uuid = UUID.randomUUID();
51 type = UUID.randomUUID();
52 taxonController = new TaxonListController();
53 taxonService = EasyMock.createMock(ITaxonService.class);
54 termService = EasyMock.createMock(ITermService.class);
55 pager = EasyMock.createMock(Pager.class);
56 searchResults = EasyMock.createMock(Pager.class);
57 isParentTaxonOf = new TaxonRelationshipType();
58 taxon = Taxon.NewInstance(null, null);
59 taxon.setId(1l);
60 }
61
62
63
64 @Test
65 public void testGetAcceptedTaxa() {
66 EasyMock.expect(taxonService.page(EasyMock.eq(Taxon.class), EasyMock.eq(30),EasyMock.eq(0),EasyMock.isA(List.class),EasyMock.isA(List.class))).andReturn(searchResults);
67 EasyMock.replay(taxonService);
68 List<OrderHint> orderHints = new ArrayList<OrderHint>();
69 orderHints.add(new OrderHint("titleCache",SortOrder.ASCENDING));
70 ModelAndView modelAndView = taxonController.get(Taxon.class, 0,30, orderHints);
71 EasyMock.verify(taxonService);
72 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "pager", searchResults);
73 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "class",Taxon.class);
74 }
75
76 @Test
77 public void testSearch() throws Exception {
78 String query = "Arum";
79 EasyMock.expect(taxonService.search(EasyMock.eq(Taxon.class),EasyMock.eq(query),EasyMock.eq(30), EasyMock.eq(0) , EasyMock.isA(List.class), EasyMock.isA(List.class))).andReturn(searchResults);
80
81 EasyMock.replay(taxonService);
82 List<OrderHint> orderHints = new ArrayList<OrderHint>();
83 orderHints.add(new OrderHint("titleCache",SortOrder.ASCENDING));
84 ModelAndView modelAndView = taxonController.getSearch(Taxon.class,query, 0,30,orderHints);
85 EasyMock.verify(taxonService);
86
87 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "pager", searchResults);
88
89 }
90
91
92 }