View Javadoc

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  }