Project

General

Profile

Download (3.1 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.persistence.dao.hibernate.molecular;
2

    
3
import java.util.Set;
4
import java.util.UUID;
5

    
6
import org.junit.Assert;
7
import org.junit.Before;
8
import org.junit.BeforeClass;
9
import org.junit.Test;
10
import org.unitils.dbunit.annotation.DataSet;
11
import org.unitils.spring.annotation.SpringBeanByType;
12

    
13
import eu.etaxonomy.cdm.model.molecular.DnaSample;
14
import eu.etaxonomy.cdm.model.molecular.PhylogeneticTree;
15
import eu.etaxonomy.cdm.model.molecular.Sequence;
16
import eu.etaxonomy.cdm.model.term.DefinedTerm;
17
import eu.etaxonomy.cdm.persistence.dao.media.IMediaDao;
18
import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;
19
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
20

    
21
public class MolecularHibernateImplTest  extends CdmTransactionalIntegrationTest {
22

    
23
	private static final String MARKER_LABEL = "ITS1";
24

    
25
	@SpringBeanByType
26
    private IOccurrenceDao occurrenceDao;
27

    
28
	@SpringBeanByType
29
    private IMediaDao mediaDao;
30

    
31
	private UUID phyloTreeUuid;
32
	private UUID sequenceUuid;
33
	private UUID uuidSample1;// = UUID.fromString("4b451275-655f-40d6-8d4b-0203574bef15");
34

    
35
	@BeforeClass
36
	public static void setUpBeforeClass() throws Exception {
37
	}
38

    
39
	@Before
40
	public void setUp() throws Exception {
41
	}
42

    
43
//**************** TESTS ************************************************
44

    
45
	//Test if DnaSample can be loaded and if Sequence and Marker data can
46
	//be lazy loaded from database
47
	//#3340
48
	@Test
49
	@DataSet
50
	public void testLazyLoadSequenceMarker() {
51
		createTestDataSet();
52
		DnaSample sample1 = (DnaSample)occurrenceDao.findByUuid(uuidSample1);
53
		Set<Sequence> sequences = sample1.getSequences();
54

    
55
		Sequence sequence = sequences.iterator().next();
56
		DefinedTerm marker = sequence.getDnaMarker();
57
		Assert.assertNotNull("Marker should not be null", marker);
58
		Assert.assertEquals("Markers label should be 'Marker'",MARKER_LABEL, marker.getLabel());
59

    
60
		commit();
61
	}
62

    
63
	@Test
64
	@DataSet
65
	public void testLoadUsedSequences() {
66
		createTestDataSet();
67
		PhylogeneticTree phyloTree = (PhylogeneticTree)mediaDao.findByUuid(phyloTreeUuid);
68
		Assert.assertNotNull("Phylogenetic Tree should be found", phyloTree);
69
		Set<Sequence> sequences = phyloTree.getUsedSequences();
70

    
71
		Assert.assertEquals(1, sequences.size());
72
		Sequence sequence = sequences.iterator().next();
73
		Assert.assertEquals(sequenceUuid, sequence.getUuid());
74

    
75
		commit();
76
	}
77

    
78
	@Override
79
    public void createTestDataSet(){
80
		DnaSample sample = DnaSample.NewInstance();
81
		Sequence sequence = Sequence.NewInstance("Meine Sequence");
82
		sequenceUuid = sequence.getUuid();
83
		sample.addSequence(sequence);
84
		uuidSample1 = sample.getUuid();
85

    
86
		DefinedTerm marker = DefinedTerm.ITS1_MARKER();
87
		Assert.assertNotNull("ITS1 marker must not be null", marker);
88
		sequence.setDnaMarker(marker);
89

    
90
		occurrenceDao.save(sample);
91

    
92
		PhylogeneticTree phyloTree = PhylogeneticTree.NewInstance();
93
		phyloTree.addUsedSequences(sequence);
94
		mediaDao.saveOrUpdate(phyloTree);
95
		phyloTreeUuid = phyloTree.getUuid();
96

    
97
		commitAndStartNewTransaction(new String[]{"SpecimenOrObservationBase"});
98
	}
99

    
100

    
101
}
    (1-1/1)