View Javadoc

1   package org.cateproject.controller.description;
2   
3   import static org.junit.Assert.assertEquals;
4   
5   import java.util.ArrayList;
6   import java.util.List;
7   import java.util.Set;
8   import java.util.UUID;
9   
10  import org.easymock.EasyMock;
11  import org.junit.Before;
12  import org.junit.Ignore;
13  import org.junit.Test;
14  import org.springframework.test.web.ModelAndViewAssert;
15  import org.springframework.web.servlet.ModelAndView;
16  import org.unitils.UnitilsJUnit4;
17  import org.unitils.easymock.annotation.Mock;
18  import org.unitils.inject.annotation.InjectInto;
19  import org.unitils.inject.annotation.TestedObject;
20  
21  import eu.etaxonomy.cdm.api.service.IDescriptionService;
22  import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
23  import eu.etaxonomy.cdm.api.service.ITermService;
24  import eu.etaxonomy.cdm.api.service.pager.Pager;
25  import eu.etaxonomy.cdm.model.common.Language;
26  import eu.etaxonomy.cdm.model.common.LanguageString;
27  import eu.etaxonomy.cdm.model.description.CommonTaxonName;
28  import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
29  import eu.etaxonomy.cdm.model.description.Distribution;
30  import eu.etaxonomy.cdm.model.description.Feature;
31  import eu.etaxonomy.cdm.model.description.FeatureNode;
32  import eu.etaxonomy.cdm.model.description.FeatureTree;
33  import eu.etaxonomy.cdm.model.description.TaxonDescription;
34  import eu.etaxonomy.cdm.model.description.TextData;
35  
36  @Ignore
37  public class DescriptionControllerTest extends UnitilsJUnit4 {
38  	
39  	@Mock
40  	@InjectInto(property = "service")
41  	private IDescriptionService descriptionService;
42  	
43  	@Mock
44  	@InjectInto(property = "featureTreeService")
45  	private IFeatureTreeService featureTreeService;
46  	
47  	@Mock
48  	@InjectInto(property = "termService")
49  	ITermService termService;
50  	
51  	@TestedObject
52  	private DescriptionController descriptionController;
53  	
54  	private FeatureTree featureTree;
55  	private TaxonDescription taxonDescription;
56  	private Pager<DescriptionElementBase> textDatas;
57  	private List<DescriptionElementBase> textDataList;
58  	private Feature feature;
59  
60  	
61  	private UUID uuid;
62      private UUID featureTreeUUID;
63  	
64  	@Before
65  	public void setUp() {
66  		uuid = UUID.randomUUID();
67  		featureTreeUUID = UUID.randomUUID();
68  		descriptionController = new DescriptionController();
69  		descriptionService = EasyMock.createMock(IDescriptionService.class);
70  		termService = EasyMock.createMock(ITermService.class);
71  		featureTreeService = EasyMock.createMock(IFeatureTreeService.class);
72  
73  		textDatas = EasyMock.createMock(Pager.class);
74  		
75  		textDataList = new ArrayList<DescriptionElementBase>();
76  		
77  		featureTree = FeatureTree.NewInstance();
78  		featureTree.setRoot(FeatureNode.NewInstance(Feature.NewInstance()));
79  
80  		taxonDescription = new TaxonDescription();
81  		
82  		feature = new Feature();
83  		Language language = new Language();
84  
85  		List<DescriptionElementBase> textDataResults = new ArrayList<DescriptionElementBase>();
86  		for(int i = 0; i < 4; i++) {
87  			TextData td = new TextData();
88  			LanguageString ls = LanguageString.NewInstance("<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi orci ligula, vestibulum ut, suscipit non, sodales sit amet, mi. Etiam eget purus. Sed venenatis augue ac ligula. Donec enim ligula, auctor ac, sodales vel, ornare volutpat, diam. Aliquam eget mauris. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Etiam eget justo id diam interdum porta. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus mi lectus, lacinia eget, pretium vitae, interdum eget, leo. Ut consectetuer, lorem non euismod consequat, quam nunc ullamcorper neque, nec imperdiet ante sem non ligula. Morbi vel justo. Integer vitae nunc. Donec sodales neque mattis augue.</p> <p>Vivamus in lacus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean lorem felis, vehicula sed, ultrices quis, porttitor vel, tortor. Etiam tristique massa vitae sem. Mauris congue. Phasellus quis nisi. Donec nec leo non est porttitor molestie. Aenean at arcu at libero vulputate semper. Aenean adipiscing, libero pellentesque iaculis elementum, est ligula aliquet sem, ut bibendum felis lorem eget metus. Maecenas vehicula. Sed aliquam scelerisque lorem.</p> <p>Nulla vulputate, augue ut sagittis porttitor, nisl diam tincidunt est, at tincidunt metus felis nec lacus. Nulla facilisi. Etiam mollis, quam in egestas ultrices, augue nisl sagittis orci, vel lacinia odio lacus a lorem. Fusce non risus. Mauris malesuada sagittis leo. Nullam rutrum metus in mi. Aliquam laoreet convallis nisl. Cras sollicitudin pede. Sed hendrerit libero at sem. In hac habitasse platea dictumst. Ut rutrum enim a felis. Cras pretium sapien a arcu. Donec sit amet ante.</p>", language);
89  			td.getMultilanguageText().put(language, ls);
90  			td.setFeature(feature);
91  			textDataResults.add(td);
92  		}
93  	}
94  	
95      @Test
96  	public void testTextData(){
97  		EasyMock.expect(descriptionService.load(EasyMock.eq(uuid),EasyMock.isA(List.class))).andReturn(taxonDescription);
98  		EasyMock.expect(featureTreeService.load(EasyMock.eq(featureTreeUUID), EasyMock.isA(List.class))).andReturn(featureTree);
99  		EasyMock.expect(descriptionService.getDescriptionElements(EasyMock.eq(taxonDescription),EasyMock.isA(Set.class),(Class)EasyMock.isNull(),(Integer)EasyMock.isNull(),(Integer)EasyMock.isNull(),EasyMock.isA(List.class))).andReturn(textDatas);
100 		EasyMock.expect(textDatas.getRecords()).andReturn(textDataList);
101 		
102 		EasyMock.replay(descriptionService,termService,textDatas);
103 		
104 		ModelAndView modelAndView = descriptionController.getElements(uuid, featureTreeUUID);
105 		
106 		EasyMock.verify(descriptionService,termService,textDatas);
107 		
108 		ModelAndViewAssert.assertModelAttributeValue(modelAndView, "object", taxonDescription);
109 		ModelAndViewAssert.assertModelAttributeAvailable(modelAndView, "pager");
110 		ModelAndViewAssert.assertModelAttributeValue(modelAndView, "featureTree",featureTree);
111 	} 
112     
113     @Test
114     public void testFeatureNodeWithLevel() {
115     	FeatureNodeWithLevel featureNodeWithLevel = new FeatureNodeWithLevel(FeatureNode.NewInstance(), 0);
116     	featureNodeWithLevel.addElement(Distribution.NewInstance());
117     	featureNodeWithLevel.addElement(Distribution.NewInstance());
118     	featureNodeWithLevel.addElement(TextData.NewInstance());
119     	featureNodeWithLevel.addElement(Distribution.NewInstance());
120     	featureNodeWithLevel.addElement(Distribution.NewInstance());
121     	featureNodeWithLevel.addElement(Distribution.NewInstance());
122     	featureNodeWithLevel.addElement(TextData.NewInstance());
123     	featureNodeWithLevel.addElement(Distribution.NewInstance());
124     	featureNodeWithLevel.addElement(Distribution.NewInstance());
125     	featureNodeWithLevel.addElement(Distribution.NewInstance());
126     	featureNodeWithLevel.addElement(Distribution.NewInstance());
127     	featureNodeWithLevel.addElement(TextData.NewInstance());
128     	featureNodeWithLevel.addElement(CommonTaxonName.NewInstance(null, null));
129     	
130     	assertEquals(featureNodeWithLevel.getTextData().size(),3);
131     }
132 }