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 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  }