Project

General

Profile

Download (6.75 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
package eu.etaxonomy.cdm.persistence.dao.hibernate.reference;
10

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

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

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

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

    
35
@DataSet
36
public class ReferenceDaoHibernateImplTest extends CdmIntegrationTest {
37

    
38
	@SpringBeanByType
39
	IReferenceDao referenceDao;
40

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

    
47
	@Before
48
	public void setUp() {
49
		firstBookUuid = UUID.fromString("596b1325-be50-4b0a-9aa2-3ecd610215f2");
50
	    firstJournalUuid = UUID.fromString("ad4322b7-4b05-48af-be70-f113e46c545e");
51
	    proceedingsUuid = UUID.fromString("596b1327-be50-4b0a-9aa2-3ecd610215f2");
52
	    bookSectionUuid = UUID.fromString("596b1327-be51-4b0a-9aa2-3ecd610215f1");
53
	    nomenclaturalReferenceBookUuid = UUID.fromString("596b1325-be50-4b0a-9aa2-3ecd610215f3");
54
	}
55

    
56
	@Test
57
	public void testDummy() {
58
	}
59

    
60
	@Test
61
	public void testGetPublishers() {
62
		IJournal firstJournal = referenceDao.findByUuid(firstJournalUuid);
63
		assert firstJournal!= null : "journal must exist";
64
	}
65

    
66
	@Test
67
	public void testGetSubordinateReferences() {
68

    
69
	    Reference book = referenceDao.findByUuid(firstBookUuid);
70
	    Reference proceedings = referenceDao.findByUuid(proceedingsUuid);
71

    
72
	    // 1.)
73
		List<Reference> book_subordinateReferences = referenceDao.getSubordinateReferences(book);
74
		assertEquals("expecting one subordinate reference", book_subordinateReferences.size(), 1);
75
		Reference sub_1 = book_subordinateReferences.get(0);
76
		assertEquals("expecting BookSection as first subordinateReferences", "Better Testing made easy", sub_1.getTitleCache());
77
		assertEquals("first subordinateReferences matches uuid", bookSectionUuid, sub_1.getUuid());
78

    
79
		// 2.)
80
		List<Reference> proceedings_subordinateReferences = referenceDao.getSubordinateReferences(proceedings);
81
		assertEquals("expecting one subordinate reference",2 ,proceedings_subordinateReferences.size());
82
		sub_1 = proceedings_subordinateReferences.get(0);
83
		Reference sub_2 = proceedings_subordinateReferences.get(1);
84
		assertEquals("expecting BookSection as first subordinateReferences", "Proceedings of Testing Vol. 1", sub_1.getTitleCache());
85
		assertEquals("expecting BookSection as first subordinateReferences", "Better Testing made easy", sub_2.getTitleCache());
86
		assertEquals("first subordinateReferences matches uuid", firstBookUuid, sub_1.getUuid());
87
		assertEquals("second subordinateReferences matches uuid", bookSectionUuid, sub_2.getUuid());
88
	}
89

    
90
	@Test
91
	public void testListCoveredTaxa() {
92

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

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

    
100
		coveredTaxa = referenceDao.listCoveredTaxa(book, true, orderHints, null);
101
		assertEquals("expecting 2 Taxa covered by this book", 2, coveredTaxa.size());
102
		Set<String> titles = makeTitleCacheSet(coveredTaxa);
103
		Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));
104
		Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));
105
		assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );
106

    
107
		Reference bookSection = referenceDao.findByUuid(bookSectionUuid);
108
		coveredTaxa = referenceDao.listCoveredTaxa(bookSection, false, orderHints, null);
109
		assertEquals("expecting two Taxa covered by this bookSection", 2, coveredTaxa.size());
110
		titles = makeTitleCacheSet(coveredTaxa);
111
		Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));
112
		Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));
113
		assertEquals("1st covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );
114
		assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );
115

    
116
		// by nomenclaturalReference
117
		Reference nomRef = referenceDao.findByUuid(nomenclaturalReferenceBookUuid);
118
		coveredTaxa = referenceDao.listCoveredTaxa(nomRef, false, orderHints, null);
119
		assertEquals("expecting two Taxa covered nomenclaturalReference", 2, coveredTaxa.size());
120
		titles = makeTitleCacheSet(coveredTaxa);
121
		Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));
122
		Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));
123
		assertEquals("covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );
124
		assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );
125
	}
126

    
127
	private Set<String> makeTitleCacheSet(List<TaxonBase> coveredTaxa) {
128
		Set<String> titles = new HashSet<>();
129
		titles.add(coveredTaxa.get(0).getName().getTitleCache());
130
		titles.add(coveredTaxa.get(1).getName().getTitleCache());
131
		return titles;
132
	}
133

    
134
	@Test
135
	public void testUUIDAndTitleCacheWithReferenceType(){
136
	    List<UuidAndTitleCache<Reference>> referenceUuidAndTitleCacheList = referenceDao.getUuidAndTitleCache(100, "Better Testing*", ReferenceType.Article);
137
	    assertEquals(1, referenceUuidAndTitleCacheList.size());
138
	    referenceUuidAndTitleCacheList = referenceDao.getUuidAndTitleCache(100, "Better Testing*", ReferenceType.Book);
139
	    assertEquals(0, referenceUuidAndTitleCacheList.size());
140
	}
141

    
142
    @Override
143
    public void createTestDataSet() throws FileNotFoundException {}
144
}
    (1-1/1)