Project

General

Profile

Download (7.44 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.persistence.dao.hibernate.reference;
11

    
12
import static org.junit.Assert.assertEquals;
13

    
14
import java.io.FileNotFoundException;
15
import java.util.Arrays;
16
import java.util.HashSet;
17
import java.util.List;
18
import java.util.Set;
19
import java.util.UUID;
20

    
21
import org.junit.Assert;
22
import org.junit.Before;
23
import org.junit.Test;
24
import org.unitils.dbunit.annotation.DataSet;
25
import org.unitils.spring.annotation.SpringBeanByType;
26

    
27
import eu.etaxonomy.cdm.model.reference.IJournal;
28
import eu.etaxonomy.cdm.model.reference.Reference;
29
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
30
import eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao;
31
import eu.etaxonomy.cdm.persistence.query.OrderHint;
32
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
33

    
34
@DataSet
35
public class ReferenceDaoHibernateImplTest extends CdmIntegrationTest {
36

    
37
	@SpringBeanByType
38
	IReferenceDao referenceDao;
39

    
40
	private UUID firstBookUuid;
41
	private UUID firstJournalUuid;
42
	private UUID genericUuid;
43
	private UUID proceedingsUuid;
44
	private UUID bookSectionUuid;
45
	private UUID nomenclaturalReferenceBookUuid;
46

    
47
	private final String firstPublisherName ="First Publisher";
48
	private final String secondPublisherName ="Second Publisher";
49
	private final String thirdPublisherName ="Third Publisher";
50
	private final String fourthPublisherName ="Fourth Publisher";
51

    
52

    
53
	@Before
54
	public void setUp() {
55
		firstBookUuid = UUID.fromString("596b1325-be50-4b0a-9aa2-3ecd610215f2");
56
	    firstJournalUuid = UUID.fromString("ad4322b7-4b05-48af-be70-f113e46c545e");
57
	    genericUuid = UUID.fromString("bd4822b7-4b05-4eaf-be70-f113446c585e");
58
	    proceedingsUuid = UUID.fromString("596b1327-be50-4b0a-9aa2-3ecd610215f2");
59
	    bookSectionUuid = UUID.fromString("596b1327-be51-4b0a-9aa2-3ecd610215f1");
60
	    nomenclaturalReferenceBookUuid = UUID.fromString("596b1325-be50-4b0a-9aa2-3ecd610215f3");
61
	}
62

    
63
	@Test
64
	public void testDummy() {
65
	}
66

    
67
	@Test
68
	public void testGetPublishers() {
69
		IJournal firstJournal = referenceDao.findByUuid(firstJournalUuid);
70
		assert firstJournal!= null : "journal must exist";
71

    
72
//		List<Publisher> publishers = firstJournal.getPublishers();
73
//
74
//		assertNotNull("getPublishers should return a list", publishers);
75
//		assertFalse("the list should not be empty", publishers.isEmpty());
76
//		assertEquals("getPublishers should return 4 Publisher instances",4,publishers.size());
77
//		assertEquals("first publisher should come first",firstPublisherName,publishers.get(0).getPublisherName());
78
//		assertEquals("second publisher should come second",secondPublisherName,publishers.get(1).getPublisherName());
79
//		assertEquals("third publisher should come third",thirdPublisherName,publishers.get(2).getPublisherName());
80
//		assertEquals("fourth publisher should come fourth",fourthPublisherName,publishers.get(3).getPublisherName());
81

    
82

    
83
	}
84

    
85
	@Test
86
	public void testGetSubordinateReferences() {
87

    
88
	    Reference book = referenceDao.findByUuid(firstBookUuid);
89
	    Reference proceedings = referenceDao.findByUuid(proceedingsUuid);
90

    
91
	    // 1.)
92
		List<Reference> book_subordinateReferences = referenceDao.getSubordinateReferences(book);
93
		assertEquals("expecting one subordinate reference", book_subordinateReferences.size(), 1);
94
		Reference sub_1 = book_subordinateReferences.get(0);
95
		assertEquals("expecting BookSection as first subordinateReferences", "Better Testing made easy", sub_1.getTitleCache());
96
		assertEquals("first subordinateReferences matches uuid", bookSectionUuid, sub_1.getUuid());
97

    
98
		// 2.)
99
		List<Reference> proceedings_subordinateReferences = referenceDao.getSubordinateReferences(proceedings);
100
		assertEquals("expecting one subordinate reference",2 ,proceedings_subordinateReferences.size());
101
		sub_1 = proceedings_subordinateReferences.get(0);
102
		Reference sub_2 = proceedings_subordinateReferences.get(1);
103
		assertEquals("expecting BookSection as first subordinateReferences", "Proceedings of Testing Vol. 1", sub_1.getTitleCache());
104
		assertEquals("expecting BookSection as first subordinateReferences", "Better Testing made easy", sub_2.getTitleCache());
105
		assertEquals("first subordinateReferences matches uuid", firstBookUuid, sub_1.getUuid());
106
		assertEquals("second subordinateReferences matches uuid", bookSectionUuid, sub_2.getUuid());
107
	}
108

    
109
	@Test
110
	public void testListCoveredTaxa() {
111

    
112
		Reference book = referenceDao.findByUuid(firstBookUuid);
113
		List<OrderHint> orderHints = Arrays.asList(new OrderHint[]{new OrderHint("titleCache", OrderHint.SortOrder.DESCENDING)});
114

    
115
		List<TaxonBase> coveredTaxa = referenceDao.listCoveredTaxa(book, false, orderHints, null);
116
		assertEquals("expecting one Taxa covered by this book", 1, coveredTaxa.size());
117
		assertEquals("covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );
118

    
119
		coveredTaxa = referenceDao.listCoveredTaxa(book, true, orderHints, null);
120
		assertEquals("expecting 2 Taxa covered by this book", 2, coveredTaxa.size());
121
		Set<String> titles = makeTitleCacheSet(coveredTaxa);
122
		Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));
123
		Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));
124
		assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );
125

    
126
		Reference bookSection = referenceDao.findByUuid(bookSectionUuid);
127
		coveredTaxa = referenceDao.listCoveredTaxa(bookSection, false, orderHints, null);
128
		assertEquals("expecting two Taxa covered by this bookSection", 2, coveredTaxa.size());
129
		titles = makeTitleCacheSet(coveredTaxa);
130
		Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));
131
		Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));
132
		assertEquals("1st covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );
133
		assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );
134

    
135
		// by nomenclaturalReference
136
		Reference nomRef = referenceDao.findByUuid(nomenclaturalReferenceBookUuid);
137
		coveredTaxa = referenceDao.listCoveredTaxa(nomRef, false, orderHints, null);
138
		assertEquals("expecting two Taxa covered nomenclaturalReference", 2, coveredTaxa.size());
139
		titles = makeTitleCacheSet(coveredTaxa);
140
		Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));
141
		Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));
142
		assertEquals("covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );
143
		assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );
144

    
145
	}
146

    
147
	private Set<String> makeTitleCacheSet(List<TaxonBase> coveredTaxa) {
148
		Set<String> titles = new HashSet<String>();
149
		titles.add(coveredTaxa.get(0).getName().getTitleCache());
150
		titles.add(coveredTaxa.get(1).getName().getTitleCache());
151
		return titles;
152
	}
153

    
154
    /* (non-Javadoc)
155
     * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()
156
     */
157
    @Override
158
    public void createTestDataSet() throws FileNotFoundException {
159
        // TODO Auto-generated method stub
160

    
161
    }
162

    
163

    
164
}
    (1-1/1)