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.Assert;
9 import org.junit.Before;
10 import org.junit.BeforeClass;
11 import org.junit.Test;
12 import org.springframework.test.web.ModelAndViewAssert;
13 import org.springframework.web.servlet.ModelAndView;
14 import org.unitils.UnitilsJUnit4;
15 import org.unitils.easymock.annotation.Mock;
16 import org.unitils.inject.annotation.InjectInto;
17 import org.unitils.inject.annotation.TestedObject;
18
19 import eu.etaxonomy.cdm.api.service.ITaxonService;
20 import eu.etaxonomy.cdm.api.service.pager.Pager;
21 import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
22 import eu.etaxonomy.cdm.model.taxon.Taxon;
23 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
24 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
25
26 public class TaxonMenuControllerTest extends UnitilsJUnit4 {
27
28 @Mock
29 @InjectInto(property = "taxonService")
30 private ITaxonService taxonService;
31
32 @TestedObject
33 private TaxonMenuController taxonMenuController;
34
35 private Taxon taxon;
36 private UUID uuid;
37 private Pager<TaxonRelationship> children;
38 private ArrayList<TaxonRelationship> result;
39
40 @BeforeClass
41 public static void setUpBefore() {
42 DefaultTermInitializer initalizer = new DefaultTermInitializer();
43 initalizer.initialize();
44 }
45
46 @Before
47 public void setUp() {
48 taxonMenuController = new TaxonMenuController();
49 taxonService = EasyMock.createMock(ITaxonService.class);
50 children = (Pager<TaxonRelationship>)EasyMock.createMock(Pager.class);
51 taxon = Taxon.NewInstance(null, null);
52 uuid = UUID.fromString("d996f957-5dbd-4a4d-879c-f3382767cb2b");
53 result = new ArrayList<TaxonRelationship>();
54 }
55
56 @Test
57 public void testTaxonMenuService() throws Exception {
58 EasyMock.expect(taxonService.find(EasyMock.eq(uuid))).andReturn(taxon);
59 EasyMock.expect(taxonService.pageToTaxonRelationships(EasyMock.same(taxon), EasyMock.eq(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN()),(Integer)EasyMock.isNull(),EasyMock.eq(0),EasyMock.isA(List.class),EasyMock.isA(List.class))).andReturn(children);
60 EasyMock.expect(children.getRecords()).andReturn(result);
61
62 EasyMock.replay(taxonService,children);
63
64 String data = "{\"node\":{\"widgetId\":\"dojo_TreeNode\",\"objectId\":\"d996f957-5dbd-4a4d-879c-f3382767cb2b\",\"index\":0},\"tree\":{\"widgetId\":\"taxonMenu\",\"objectId\":\"\"}}";
65
66 ModelAndView modelAndView = taxonMenuController.handleRequest(data);
67
68 EasyMock.verify(taxonService,children);
69 Assert.assertNotNull(modelAndView);
70 ModelAndViewAssert.assertViewName(modelAndView,"taxonTree");
71 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "pager", result);
72 }
73 }