1 package org.cateproject.controller.name;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.UUID;
6
7
8 import org.easymock.EasyMock;
9 import org.junit.Before;
10 import org.junit.Test;
11 import org.springframework.test.web.ModelAndViewAssert;
12 import org.springframework.web.servlet.ModelAndView;
13 import org.unitils.UnitilsJUnit4;
14 import org.unitils.easymock.annotation.Mock;
15 import org.unitils.inject.annotation.InjectInto;
16 import org.unitils.inject.annotation.TestedObject;
17
18 import eu.etaxonomy.cdm.api.service.INameService;
19 import eu.etaxonomy.cdm.api.service.ITaxonService;
20 import eu.etaxonomy.cdm.api.service.pager.Pager;
21 import eu.etaxonomy.cdm.model.name.NonViralName;
22 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
23 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
24 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
25 import eu.etaxonomy.cdm.model.name.ZoologicalName;
26 import eu.etaxonomy.cdm.model.taxon.Taxon;
27 import eu.etaxonomy.cdm.persistence.query.OrderHint;
28 import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
29
30 public class TaxonNameControllerTest extends UnitilsJUnit4 {
31
32 @Mock
33 @InjectInto(property = "service")
34 private INameService nameService;
35
36 @TestedObject
37 private NameController nameController;
38
39 private Taxon taxon;
40 private NonViralName name;
41 private Pager<TypeDesignationBase> typeDesignations;
42 private UUID uuid;
43
44 @Before
45 public void setUp() {
46 uuid = UUID.randomUUID();
47 nameController = new NameController();
48 nameService = EasyMock.createMock(INameService.class);
49
50 name = ZoologicalName.NewInstance(null);
51 typeDesignations = (Pager<TypeDesignationBase>)EasyMock.createMock(Pager.class);
52 taxon = new Taxon();
53 }
54
55 @Test
56 public void testTypeDesignations() throws Exception {
57
58 EasyMock.expect(nameService.load(EasyMock.eq(uuid),EasyMock.isA(List.class))).andReturn(name);
59 EasyMock.expect(nameService.getTypeDesignations((TaxonNameBase)EasyMock.eq(name),(SpecimenTypeDesignationStatus)EasyMock.isNull(),EasyMock.eq(30),EasyMock.eq(0),EasyMock.isA(List.class))).andReturn(typeDesignations);
60
61 EasyMock.replay(nameService);
62 ModelAndView modelAndView = nameController.getTypeDesignations(uuid, 0,30, new ArrayList<OrderHint>(),null);
63
64 EasyMock.verify(nameService);
65
66 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "object", name);
67 ModelAndViewAssert.assertModelAttributeValue(modelAndView, "pager", typeDesignations);
68 }
69 }