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