View Javadoc

1   package org.cateproject.view.taxon;
2   
3   import java.util.ArrayList;
4   import java.util.HashMap;
5   import java.util.List;
6   import java.util.Map;
7   
8   import org.cateproject.view.CATEViewTest;
9   import org.junit.Test;
10  import org.springframework.web.servlet.ModelAndView;
11  
12  import eu.etaxonomy.cdm.api.service.pager.Pager;
13  import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
14  import eu.etaxonomy.cdm.api.service.pager.impl.StringLabelPagerImpl;
15  import eu.etaxonomy.cdm.model.name.BotanicalName;
16  import eu.etaxonomy.cdm.model.name.NonViralName;
17  import eu.etaxonomy.cdm.model.taxon.Synonym;
18  import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
19  import eu.etaxonomy.cdm.model.taxon.Taxon;
20  import eu.etaxonomy.cdm.model.taxon.TaxonBase;
21  import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
22  import eu.etaxonomy.cdm.strategy.cache.name.INonViralNameCacheStrategy;
23  
24  public class TaxonViewsTest extends CATEViewTest {
25          
26          @Test
27          public void testSynonymsPage() {
28                  ModelAndView modelAndView = new ModelAndView("taxon/synonyms");
29                  modelAndView.addObject("object", dataSet.getTaxonBases().get(0));
30                  final List<SynonymRelationship> results = new ArrayList<SynonymRelationship>();
31                  results.addAll(((Taxon)dataSet.getTaxonBases().get(0)).getSynonymRelations());
32                  Pager<SynonymRelationship> synonyms = new StringLabelPagerImpl<SynonymRelationship>(0, 21, 30, results) {
33                          protected String getLabel(Integer i) {
34                                  Synonym s = results.get(i).getSynonym();
35                                  return s.getName().getTitleCache();
36                          }
37                  };
38                  
39                  modelAndView.addObject("synonyms",synonyms);
40                  outputMock(modelAndView,"target/generated-sources/mock/taxon/synonyms.html");
41          }
42          
43          @Test
44          public void testSynonymsByTypePage() {
45                  ModelAndView modelAndView = new ModelAndView("taxon/synonyms");
46                  modelAndView.addObject("object", dataSet.getTaxonBases().get(0));
47                  final List<SynonymRelationship> results = new ArrayList<SynonymRelationship>();
48                  results.addAll(((Taxon)dataSet.getTaxonBases().get(0)).getSynonymRelations());
49                  Pager<SynonymRelationship> synonyms = new StringLabelPagerImpl<SynonymRelationship>(0, 21, 6, results) {
50                          protected String getLabel(Integer i) {
51                                  Synonym s = results.get(i).getSynonym();
52                                  return s.getTitleCache();
53                          }
54                  };
55                  
56                  modelAndView.addObject("synonyms",synonyms);
57                  modelAndView.addObject("type",dataSet.getTerms().get(12));
58                  outputMock(modelAndView,"target/generated-sources/mock/taxon/synonyms_taxonomic.html");
59          }
60          
61          @Test
62          public void testRelatedTaxaPage() {
63                  ModelAndView modelAndView = new ModelAndView("taxon/toTaxonRelationships");
64                  modelAndView.addObject("object", dataSet.getTaxonBases().get(1));
65                  final List<TaxonRelationship> results = new ArrayList<TaxonRelationship>();
66                  results.addAll(((Taxon)dataSet.getTaxonBases().get(1)).getRelationsToThisTaxon());
67                  
68                  Pager<TaxonRelationship> taxa = new StringLabelPagerImpl<TaxonRelationship>(0, 3, 30, results) {
69                          protected String getLabel(Integer i) {
70                                  NonViralName n = (NonViralName)results.get(i).getFromTaxon().getName();
71                                  return n.getSpecificEpithet();
72                          }
73                  };
74                  
75                  modelAndView.addObject("relatedTaxa",taxa);
76                  modelAndView.addObject("type",dataSet.getTerms().get(1));
77  
78                  outputMock(modelAndView,"target/generated-sources/mock/taxon/toTaxonRelationships.html");
79          }
80          
81          @Test
82          public void testIndex() {
83          	ModelAndView modelAndView = new ModelAndView("taxon/index");
84          	modelAndView.addObject("object",dataSet.getTaxonBases().get(0));
85  
86          	
87          	outputMock(modelAndView,"target/generated-sources/mock/taxon/index.html");
88          }
89          
90          @Test
91          public void testIndexWithSynonym() {
92          	ModelAndView modelAndView = new ModelAndView("taxon/index");
93          	modelAndView.addObject("object",dataSet.getTaxonBases().get(5));
94          	
95          	outputMock(modelAndView,"target/generated-sources/mock/taxon/index_synonym.html");
96          }
97          
98          @Test
99          public void testListOfSynonyms() {
100         	ModelAndView modelAndView = new ModelAndView("taxon/list");
101             final List<Synonym> results = (List)dataSet.getTaxonBases().subList(4, 25);
102             Pager<Synonym> synonyms = new StringLabelPagerImpl<Synonym>(0, 21, 30, results){
103                 protected String getLabel(Integer i) {
104                 	Synonym s = results.get(i);
105                     return s.getTitleCache();
106             }
107            };
108             
109             modelAndView.addObject("pager",synonyms);
110             modelAndView.addObject("class",Synonym.class);
111         	
112         	outputMock(modelAndView,"target/generated-sources/mock/taxon/list_synonyms.html");
113         }
114         
115         @Test
116         public void testListOfTaxa() {
117         	ModelAndView modelAndView = new ModelAndView("taxon/list");
118             final List<Taxon> results = (List)dataSet.getTaxonBases().subList(0, 4);
119             Pager<Taxon> taxa = new DefaultPagerImpl<Taxon>(0, 4, 30, results){
120                 protected String getLabel(Integer i) {
121                 	Taxon t = results.get(i);
122                     return t.getTitleCache();
123             }
124            };
125             
126             modelAndView.addObject("pager",taxa);
127             modelAndView.addObject("class",Taxon.class);
128         	
129         	outputMock(modelAndView,"target/generated-sources/mock/taxon/list_accepted.html");
130         }
131         
132         @Test
133         public void testList() {
134         	ModelAndView modelAndView = new ModelAndView("taxon/list");
135             final List<TaxonBase> all = dataSet.getTaxonBases();
136             Pager<TaxonBase> pager = new DefaultPagerImpl<TaxonBase>(0, 25, 30, all){
137                 protected String getLabel(Integer i) {
138                 	TaxonBase t = all.get(i);
139                     return t.getTitleCache();
140             }
141            };
142             
143             modelAndView.addObject("pager",pager);
144         	
145         	outputMock(modelAndView,"target/generated-sources/mock/taxon/list.html");
146         }
147         
148         @Test
149         public void testListAtom() {
150         	ModelAndView modelAndView = new ModelAndView("taxon/list");
151             final List<TaxonBase> all = dataSet.getTaxonBases();
152             Pager<TaxonBase> pager = new DefaultPagerImpl<TaxonBase>(0, 25, 5, all){
153                 protected String getLabel(Integer i) {
154                 	TaxonBase t = all.get(i);
155                     return t.getTitleCache();
156             }
157            };
158             
159             modelAndView.addObject("pager",pager);
160         	
161             outputSingleRequest(modelAndView,"target/generated-sources/mock/taxon/list.atom");
162         }
163         
164         @Test
165         public void testEditTaxon() {
166         	Map<String,Object> referenceData = new HashMap<String,Object>();
167         	referenceData.put("flowExecutionUrl", "/taxon/edit?execution=e1s1");
168     		referenceData.put("parent",dataSet.getTaxonBases().get(0));
169         	outputForm("taxon/edit/edit",
170         			"target/generated-sources/mock/taxon/edit/edit.html",
171  				   "object", 
172  				   Taxon.class,
173  				   referenceData, 
174  				   "GET", 
175  				   null,
176  				   new HashMap<String,String>());
177         }
178         
179         @Test
180         public void testConfirmRemoveSynonym() {
181         	Map<String,Object> referenceData = new HashMap<String,Object>();
182         	referenceData.put("flowExecutionUrl", "/taxon/delete?execution=e1s1");
183     		referenceData.put("object",dataSet.getTaxonBases().get(5));
184         	outputForm("taxon/delete/confirmRemoveSynonym",
185         			"target/generated-sources/mock/taxon/delete/confirmRemoveSynonym.html",
186  				   "object", 
187  				   Synonym.class,
188  				   referenceData, 
189  				   "GET", 
190  				   null,
191  				   new HashMap<String,String>());
192         }
193         
194         @Test
195     	public void testSummaryPage() {
196     		ModelAndView modelAndView = new ModelAndView("taxon/summary");
197     		
198     		List<Object[]> taxaSummary = new ArrayList<Object[]>();
199     		taxaSummary.add(new Object[] {4484 ,"Taxon"});
200     		taxaSummary.add(new Object[] {3473,"Synonym"});
201     		modelAndView.addObject("byClass", taxaSummary);
202     		
203     		List<Object[]> nameByGenus = new ArrayList<Object[]>();
204     		nameByGenus.add(new Object[] {891,"Manduca"});
205     		nameByGenus.add(new Object[] {487,"Acherontia"});
206     		nameByGenus.add(new Object[] {288,"Atropos"});
207     		nameByGenus.add(new Object[] {191,"Aus"});
208     		nameByGenus.add(new Object[] {120,"Smerinthus"});
209     		nameByGenus.add(new Object[] {104,"Acosmeryx"});
210     		nameByGenus.add(new Object[] {97,"Agrius"});
211     		nameByGenus.add(new Object[] {75,"Akbesia"});
212     		nameByGenus.add(new Object[] {72,"Brachyglossa"});
213     		nameByGenus.add(new Object[] {70,"Callambulyx"});
214     		nameByGenus.add(new Object[] {68,"Clarina"});
215     		nameByGenus.add(new Object[] {56,"Cryptocoryne"});
216     		nameByGenus.add(new Object[] {48,"Daphnis"});
217     		modelAndView.addObject("byGenusOrUninomial", nameByGenus);
218     		
219     		List<Object[]> taxaOverTime = new ArrayList<Object[]>();
220     		taxaOverTime.add(new Object[] {2002,12,1});
221     		taxaOverTime.add(new Object[] {2003,4,1});
222     		taxaOverTime.add(new Object[] {2003,8,1});
223     		taxaOverTime.add(new Object[] {2007,12,3});
224     		taxaOverTime.add(new Object[] {2008,1,3});
225     		taxaOverTime.add(new Object[] {2008,2,3});
226     		taxaOverTime.add(new Object[] {2008,3,3});
227     		taxaOverTime.add(new Object[] {2008,4,1});
228     		taxaOverTime.add(new Object[] {2008,5,2});
229     		taxaOverTime.add(new Object[] {2008,6,2});
230     		taxaOverTime.add(new Object[] {2008,7,3});
231     		taxaOverTime.add(new Object[] {2008,8,1});
232     		taxaOverTime.add(new Object[] {2008,9,2});
233     		taxaOverTime.add(new Object[] {2008,10,2});
234     		taxaOverTime.add(new Object[] {2008,11,1});
235     		taxaOverTime.add(new Object[] {2008,12,4});
236     		taxaOverTime.add(new Object[] {2009,11,2});
237     		taxaOverTime.add(new Object[] {2009,12,3});
238     			
239     		
240     		outputMock(modelAndView,"target/generated-sources/mock/taxon/Summary.html");
241     	}
242 }