Project

General

Profile

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

    
11
package eu.etaxonomy.cdm.persistence.dao.hibernate.name;
12

    
13
import static junit.framework.Assert.assertNotNull;
14
import static org.junit.Assert.*;
15

    
16
import java.util.List;
17
import java.util.Set;
18
import java.util.UUID;
19

    
20
import org.apache.log4j.Logger;
21
import org.hibernate.util.JDBCExceptionReporter;
22
import org.junit.Assert;
23
import org.junit.Test;
24
import org.unitils.dbunit.annotation.DataSet;
25
import org.unitils.dbunit.annotation.ExpectedDataSet;
26
import org.unitils.spring.annotation.SpringBeanByType;
27

    
28
import eu.etaxonomy.cdm.model.agent.Person;
29
import eu.etaxonomy.cdm.model.common.CdmBase;
30
import eu.etaxonomy.cdm.model.name.BotanicalName;
31
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
32
import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
33
import eu.etaxonomy.cdm.model.name.Rank;
34
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
35
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
36
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
37
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
38
import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
39
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao;
40
import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;
41
import eu.etaxonomy.cdm.persistence.dao.name.ITypeDesignationDao;
42
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
43
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
44

    
45
/**
46
 * @author a.babadshanjan
47
 * @author a.mueller
48
 * @created 25.05.2009
49
 * @version 1.1
50
 */
51
@DataSet
52
public class TypeDesignationDaoHibernateImplTest extends CdmIntegrationTest {
53
	@SuppressWarnings("unused")
54
	private static final Logger logger = Logger.getLogger(TypeDesignationDaoHibernateImplTest.class);
55

    
56
	@SpringBeanByType
57
	ITypeDesignationDao typeDesignationDao;
58
	
59
	@SpringBeanByType
60
	ITaxonNameDao nameDao;
61
	
62
	@SpringBeanByType
63
	IAgentDao agentDao;
64

    
65
	
66
	/**
67
	 * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.name.TypeDesignationHibernateImpl#TypeDesignationHibernateImpl()}.
68
	 */
69
	@Test
70
	public void testInit() {
71
		assertNotNull("Instance of ITypeDesignationDao expected", typeDesignationDao);
72
	}
73
	/**
74
	 * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.name.TypeDesignationHibernateImpl#getAllTypeDesignations(java.lang.Integer, java.lang.Integer)}.
75
	 */
76
	@Test
77
	public void testGetAllTypeDesignations() {
78
		List<TypeDesignationBase> typeDesignations = typeDesignationDao.getAllTypeDesignations(100, 0);
79
		assertEquals(2, typeDesignations.size());
80
		SpecimenTypeDesignation specTypeDesig = null;
81
		for (TypeDesignationBase typeDesignation : typeDesignations) {
82
			if (typeDesignation.isInstanceOf(NameTypeDesignation.class)) {
83
				assertTrue(typeDesignation.getTypeStatus().isInstanceOf(NameTypeDesignationStatus.class));
84
			} else if (typeDesignation.isInstanceOf(SpecimenTypeDesignation.class)) {
85
				Assert.assertNull("There should be only 1 specimen type designation but this is already the second", specTypeDesig);
86
				TypeDesignationStatusBase typeDesignationStatus = typeDesignation.getTypeStatus();
87
				assertTrue(typeDesignationStatus.isInstanceOf(SpecimenTypeDesignationStatus.class));
88
				specTypeDesig = CdmBase.deproxy(typeDesignation,SpecimenTypeDesignation.class);
89
			}
90
		}
91
		Set<TaxonNameBase> names = specTypeDesig.getTypifiedNames();
92
		Assert.assertEquals("There should be exactly 1 typified name for the the specimen type designation", 1, names.size());
93
		TaxonNameBase singleName = names.iterator().next();
94
		Assert.assertEquals("", UUID.fromString("61b1dcae-8aa6-478a-bcd6-080cf0eb6ad7"), singleName.getUuid());
95
	}
96
	
97
//	/**
98
//	TODO currently throws "Could not execute JDBC batch update" exception when trying to save a new name
99
//	 * Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.name.TypeDesignationHibernateImpl#saveOrUpdate(CdmBase)}.
100
//	 */
101
//	@Test
102
//	@ExpectedDataSet
103
//	public void testSaveTypeDesignations() {
104
////		List<TypeDesignationBase> typeDesignations = typeDesignationDao.getAllTypeDesignations(100, 0);
105
////		assertEquals(typeDesignations.size(), 2);
106
////		SpecimenTypeDesignation specTypeDesig = null;
107
////		for (TypeDesignationBase typeDesignation : typeDesignations) {
108
////			if (typeDesignation.isInstanceOf(SpecimenTypeDesignation.class)) {
109
////				specTypeDesig = CdmBase.deproxy(typeDesignation,SpecimenTypeDesignation.class);
110
////			}
111
////		}
112
//		
113
//		TaxonNameBase newName = BotanicalName.NewInstance(Rank.SPECIES());
114
////		newName.setTitleCache("Name used as typified name", true);
115
////		newName.addTypeDesignation(specTypeDesig, false);
116
////		Set<TaxonNameBase> typifiedNames = specTypeDesig.getTypifiedNames();
117
////		Assert.assertEquals("There should be 2 typified names for this type designation now", 2, typifiedNames.size());
118
//		
119
//		nameDao.save(newName);
120
////		typeDesignationDao.saveOrUpdate(specTypeDesig);
121
////		this.endTransaction();
122
////		printDataSet(System.out, new String[]{"TaxonNameBase","TypeDesignationBase",
123
////				"TypeDesignationBase_TaxonNameBase","TaxonNameBase_typeDesignationBase"});
124
//		
125
//		Person person = Person.NewTitledInstance("new Person");
126
//		agentDao.save(person);
127
//	}
128
	
129
//	@Test
130
//	public void printDataSet(){
131
//		printDataSet(System.out, new String[]{"TaxonNameBase","TypeDesignationBase",
132
//				"TypeDesignationBase_TaxonNameBase","TaxonNameBase_typeDesignationBase"});
133
//	}
134
	
135
}
(5-5/5)