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 TaxonControllerTest 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 TaxonController taxonController;
39
40 private Taxon taxon;
41 private Pager<TaxonRelationship> pager;
42 private Pager<TaxonBase> searchResults;
43 private Pager<Taxon> taxonPager;
44 private TaxonRelationshipType isParentTaxonOf;
45 private UUID uuid;
46 private UUID type;
47
48
49 @Before
50 public void setUp() {
51 uuid = UUID.randomUUID();
52 type = UUID.randomUUID();
53 taxonController = new TaxonController();
54 taxonService = EasyMock.createMock(ITaxonService.class);
55 termService = EasyMock.createMock(ITermService.class);
56 pager = EasyMock.createMock(Pager.class);
57 searchResults = EasyMock.createMock(Pager.class);
58 isParentTaxonOf = new TaxonRelationshipType();
59 taxon = Taxon.NewInstance(null, null);
60 taxon.setId(1l);
61 taxonPager = EasyMock.createMock(Pager.class);
62 }
63
64 @Test
65 public void testGetRelatedTaxa() throws Exception {
66 EasyMock.expect(taxonService.load(EasyMock.eq(uuid), EasyMock.isA(List.class))).andReturn(taxon);
67 EasyMock.expect(termService.load(EasyMock.eq(type),EasyMock.isA(List.class))).andReturn(isParentTaxonOf);
68 EasyMock.expect(taxonService.pageToTaxonRelationships(EasyMock.eq(taxon), EasyMock.eq(isParentTaxonOf), EasyMock.eq(30), EasyMock.eq(0),EasyMock.isA(List.class),EasyMock.isA(List.class))).andReturn(pager);
69
70 EasyMock.replay(taxonService,termService);
71
72 ModelAndView modelAndView = taxonController.getToTaxonRelationships(uuid,0,30,new ArrayList<OrderHint>(),type);
73 EasyMock.verify(taxonService,termService);
74
75 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "object", taxon);
76 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "pager", pager);
77 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "type", isParentTaxonOf);
78 }
79
80
81
82
83
84
85 }