Project

General

Profile

Download (22.4 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2014 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.api.service;
10

    
11
import static org.junit.Assert.assertEquals;
12
import static org.junit.Assert.assertNotNull;
13
import static org.junit.Assert.assertTrue;
14

    
15
import java.io.FileNotFoundException;
16
import java.util.UUID;
17

    
18
import org.apache.log4j.Logger;
19
import org.junit.Test;
20
import org.unitils.dbunit.annotation.DataSet;
21
import org.unitils.spring.annotation.SpringBeanByType;
22

    
23
import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
24
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
25
import eu.etaxonomy.cdm.model.molecular.DnaSample;
26
import eu.etaxonomy.cdm.model.molecular.Sequence;
27
import eu.etaxonomy.cdm.model.molecular.SingleRead;
28
import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment;
29
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
30
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
31
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
32
import eu.etaxonomy.cdm.persistence.dao.molecular.ISingleReadDao;
33
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
34
import eu.etaxonomy.cdm.test.unitils.CleanSweepInsertLoadStrategy;
35

    
36
/**
37
 * @author pplitzner
38
 * @date 31.03.2014
39
 *
40
 */
41
public class OccurrenceServiceDeepDeleteTest extends CdmTransactionalIntegrationTest {
42

    
43
    private final UUID FIELD_UNIT_UUID = UUID.fromString("b5f58da5-4442-4001-9d13-33f41518b72a");
44
    private final UUID DERIVED_UNIT_UUID = UUID.fromString("448be6e7-f19c-4a10-9a0a-97aa005f817d");
45
    private final UUID DNA_SAMPLE_UUID = UUID.fromString("bee4212b-aff1-484e-845f-065c7d6216af");
46
    private final UUID SEQUENCE_UUID = UUID.fromString("0b867369-de8c-4837-a708-5b7d9f6091be");
47

    
48
    @SuppressWarnings("unused")
49
    private static final Logger logger = Logger.getLogger(OccurrenceServiceDeepDeleteTest.class);
50

    
51
    @SpringBeanByType
52
    private IOccurrenceService occurrenceService;
53

    
54
    @SpringBeanByType
55
    private ISingleReadDao singleReadDao;
56

    
57
    @SpringBeanByType
58
    private ISequenceService sequenceService;
59

    
60
    @Test
61
    @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="OccurrenceServiceTest.testDeleteDerivateHierarchyStepByStep.xml")
62
    public void testDeepDelete_FieldUnit(){
63

    
64

    
65
        String assertMessage = "Incorrect number of specimens after deletion.";
66
        DeleteResult deleteResult = null;
67
        SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
68
        config.setDeleteMolecularData(true);
69
        config.setDeleteChildren(true);
70

    
71
        FieldUnit fieldUnit = (FieldUnit) occurrenceService.load(FIELD_UNIT_UUID);
72
        DnaSample dnaSample = (DnaSample) occurrenceService.load(DNA_SAMPLE_UUID);
73

    
74
        //check initial state
75
        assertEquals(assertMessage, 3, occurrenceService.count(SpecimenOrObservationBase.class));
76
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
77
        assertEquals(assertMessage, 2, occurrenceService.count(DerivedUnit.class));
78
        assertEquals(assertMessage, 1, occurrenceService.count(DnaSample.class));
79
        assertEquals("incorrect number of amplification results", 1, dnaSample.getAmplificationResults().size());
80
        assertEquals("number of sequences incorrect", 1, dnaSample.getSequences().size());
81
        assertEquals("incorrect number of single reads", 1, dnaSample.getAmplificationResults().iterator().next().getSingleReads().size());
82

    
83
        //delete field unit
84
        deleteResult = occurrenceService.delete(fieldUnit, config);
85
        assertTrue(deleteResult.toString(), deleteResult.isOk());
86
        assertEquals(assertMessage, 0, occurrenceService.count(SpecimenOrObservationBase.class));
87
        assertEquals(assertMessage, 0, occurrenceService.count(FieldUnit.class));
88
        assertEquals(assertMessage, 0, occurrenceService.count(DerivedUnit.class));
89
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
90
    }
91

    
92
    @Test
93
    @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class)
94
    public void testDeepDelete_DerivedUnit(){
95
        String assertMessage = "Incorrect number of specimens after deletion.";
96
        DeleteResult deleteResult = null;
97
        SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
98
        config.setDeleteMolecularData(true);
99
        config.setDeleteChildren(true);
100

    
101
        DerivedUnit derivedUnit = (DerivedUnit) occurrenceService.load(DERIVED_UNIT_UUID);
102
        DnaSample dnaSample = (DnaSample) occurrenceService.load(DNA_SAMPLE_UUID);
103

    
104
        //check initial state
105
        assertEquals(assertMessage, 3, occurrenceService.count(SpecimenOrObservationBase.class));
106
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
107
        assertEquals(assertMessage, 2, occurrenceService.count(DerivedUnit.class));
108
        assertEquals(assertMessage, 1, occurrenceService.count(DnaSample.class));
109
        assertEquals("incorrect number of amplification results", 1, dnaSample.getAmplificationResults().size());
110
        assertEquals("number of sequences incorrect", 1, dnaSample.getSequences().size());
111
        assertEquals("incorrect number of single reads", 1, dnaSample.getAmplificationResults().iterator().next().getSingleReads().size());
112

    
113
        //delete derived unit
114
        deleteResult = occurrenceService.delete(derivedUnit, config);
115
        assertTrue(deleteResult.toString(), deleteResult.isOk());
116
        assertEquals(assertMessage, 1, occurrenceService.count(SpecimenOrObservationBase.class));
117
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
118
        assertEquals(assertMessage, 0, occurrenceService.count(DerivedUnit.class));
119
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
120
    }
121

    
122
    @Test
123
    @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class)
124
    public void testDeepDelete_DnaSample(){
125
        String assertMessage = "Incorrect number of specimens after deletion.";
126
        DeleteResult deleteResult = null;
127
        SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
128
        config.setDeleteMolecularData(true);
129
        config.setDeleteChildren(true);
130

    
131
        DnaSample dnaSample = (DnaSample) occurrenceService.load(DNA_SAMPLE_UUID);
132

    
133
        //check initial state
134
        assertEquals(assertMessage, 3, occurrenceService.count(SpecimenOrObservationBase.class));
135
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
136
        assertEquals(assertMessage, 2, occurrenceService.count(DerivedUnit.class));
137
        assertEquals(assertMessage, 1, occurrenceService.count(DnaSample.class));
138
        assertEquals("incorrect number of amplification results", 1, dnaSample.getAmplificationResults().size());
139
        assertEquals("number of sequences incorrect", 1, dnaSample.getSequences().size());
140
        assertEquals("incorrect number of single reads", 1, dnaSample.getAmplificationResults().iterator().next().getSingleReads().size());
141

    
142
        //delete dna sample
143
        deleteResult = occurrenceService.delete(dnaSample, config);
144
        assertTrue(deleteResult.toString(), deleteResult.isOk());
145
        assertEquals(assertMessage, 2, occurrenceService.count(SpecimenOrObservationBase.class));
146
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
147
        assertEquals(assertMessage, 1, occurrenceService.count(DerivedUnit.class));
148
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
149
    }
150

    
151
    @Test
152
    @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="OccurrenceServiceDeepDeleteTest.testDeepDelete_SingleRead.xml")
153
    public void testDeepDelete_SingleRead(){
154
        UUID sequenceA1Uuid = UUID.fromString("3db46d26-94ef-4759-aad8-42d0b9aea9b6");
155
        UUID sequenceA2Uuid = UUID.fromString("afa3771c-2b9d-46d7-82e0-8b9c050706e3");
156
        UUID sequenceB1Uuid = UUID.fromString("d7199db5-708e-470a-a573-9c760dd07cd1");
157
        UUID sequenceB2Uuid = UUID.fromString("1cb83575-38ea-4a8c-9418-d87163f425ce");
158
        UUID singleReadAUuid = UUID.fromString("82f538a1-2274-4d55-b27b-ed2f004ab5cd");
159
        UUID singleReadBUuid = UUID.fromString("fc74199a-89dc-40a0-9cbd-08cebebff4b5");
160

    
161
        //how the XML was generated
162
//        Sequence sequenceA1 = Sequence.NewInstance("A");
163
//        Sequence sequenceA2 = Sequence.NewInstance("T");
164
//        Sequence sequenceB1 = Sequence.NewInstance("C");
165
//        Sequence sequenceB2 = Sequence.NewInstance("G");
166
//
167
//        SingleRead singleReadA = SingleRead.NewInstance();
168
//        SingleRead singleReadB = SingleRead.NewInstance();
169
//
170
//        sequenceA1.setUuid(sequenceA1Uuid);
171
//        sequenceA2.setUuid(sequenceA2Uuid);
172
//        sequenceB1.setUuid(sequenceB1Uuid);
173
//        sequenceB1.setUuid(sequenceB2Uuid);
174
//        singleReadA.setUuid(singleReadAUuid);
175
//        singleReadB.setUuid(singleReadBUuid);
176
//
177
//        SingleReadAlignment.NewInstance(sequenceA1, singleReadA);
178
//        SingleReadAlignment.NewInstance(sequenceA2, singleReadA);
179
//        SingleReadAlignment.NewInstance(sequenceB1, singleReadB);
180
//        SingleReadAlignment.NewInstance(sequenceB2, singleReadB);
181
//
182
//        sequenceService.save(sequenceA1);
183
//        sequenceService.save(sequenceA2);
184
//        sequenceService.save(sequenceB1);
185
//        sequenceService.save(sequenceB2);
186
//
187
//        commitAndStartNewTransaction(null);
188
//
189
//        setComplete();
190
//        endTransaction();
191
//
192
//        try {
193
//            writeDbUnitDataSetFile(new String[] {
194
//                    "SpecimenOrObservationBase",
195
//                    "SpecimenOrObservationBase_DerivationEvent",
196
//                    "DerivationEvent",
197
//                    "Sequence",
198
//                    "SingleRead",
199
//                    "SingleReadAlignment",
200
//                    "Amplification",
201
//                    "AmplificationResult",
202
//                    "DescriptionElementBase",
203
//                    "DescriptionBase",
204
//                    "TaxonBase",
205
//                    "TypeDesignationBase",
206
//                    "TaxonName",
207
//                    "TaxonName_TypeDesignationBase",
208
//                    "HomotypicalGroup"
209
//            }, "testDeepDelete_SingleRead");
210
//        } catch (FileNotFoundException e) {
211
//            e.printStackTrace();
212
//        }
213

    
214
        DeleteResult deleteResult = null;
215
        SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
216
        config.setDeleteMolecularData(true);
217
        config.setDeleteChildren(true);
218

    
219
        Sequence sequenceA1 = sequenceService.load(sequenceA1Uuid);
220
        Sequence sequenceA2 = sequenceService.load(sequenceA2Uuid);
221
        Sequence sequenceB1 = sequenceService.load(sequenceB1Uuid);
222
        Sequence sequenceB2 = sequenceService.load(sequenceB2Uuid);
223
        SingleRead singleReadA = singleReadDao.load(singleReadAUuid);
224
        SingleRead singleReadB = singleReadDao.load(singleReadBUuid);
225

    
226
        //check initial state
227
        assertNotNull(sequenceA1);
228
        assertNotNull(sequenceA2);
229
        assertNotNull(sequenceB1);
230
        assertNotNull(sequenceB2);
231
        assertNotNull(singleReadA);
232
        assertNotNull(singleReadB);
233
        assertEquals("number of sequences incorrect", 4, sequenceService.count(Sequence.class));
234
        assertEquals("incorrect number of single reads", 2, singleReadDao.count());
235

    
236
        //A: delete singleRead
237
        //delete singleReadA from sequenceA1 (singleReadA should NOT be deleted)
238
        deleteResult = sequenceService.deleteSingleRead(singleReadA, sequenceA1);
239
        assertTrue(deleteResult.toString(), deleteResult.isOk());
240
        assertEquals("incorrect number of single reads", 2, singleReadDao.count());
241
        assertEquals(0, sequenceA1.getSingleReadAlignments().size());
242
        assertNotNull(singleReadDao.load(singleReadAUuid));
243

    
244
        //delete singleReadA from sequenceA2 (singleReadA should be deleted)
245
        deleteResult = sequenceService.deleteSingleRead(singleReadA, sequenceA2);
246
        assertTrue(deleteResult.toString(), deleteResult.isOk());
247
        assertEquals("incorrect number of single reads", 1, singleReadDao.count());
248
        assertEquals(0, sequenceA2.getSingleReadAlignments().size());
249
        assertTrue(singleReadDao.load(singleReadAUuid)==null);
250

    
251
        //B: delete sequence
252
        //delete sequenceB1 (singleReadB should NOT be deleted)
253
        deleteResult = sequenceService.delete(sequenceB1Uuid);
254
        assertTrue(deleteResult.toString(), deleteResult.isOk());
255
        assertEquals("incorrect number of single reads", 1, singleReadDao.count());
256
        assertNotNull(singleReadDao.load(singleReadBUuid));
257

    
258
        //delete sequenceB1 (singleReadB should be deleted)
259
        deleteResult = sequenceService.delete(sequenceB2Uuid);
260
        assertTrue(deleteResult.toString(), deleteResult.isOk());
261
        assertEquals("incorrect number of single reads", 0, singleReadDao.count());
262
        assertTrue(singleReadDao.load(singleReadBUuid)==null);
263
    }
264

    
265
    @Test
266
    @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="OccurrenceServiceDeepDeleteTest.testDeepDelete_FieldUnitWithSiblingDerivatives.xml")
267
    public void testDeepDelete_FieldUnitWithSiblingDerivatives(){
268
        String assertMessage = "Incorrect number of specimens after deletion.";
269
        DeleteResult deleteResult = null;
270
        SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
271
        config.setDeleteChildren(true);
272

    
273
        FieldUnit fieldUnit = (FieldUnit) occurrenceService.load(FIELD_UNIT_UUID);
274

    
275
        //check initial state
276
        assertEquals(assertMessage, 3, occurrenceService.count(SpecimenOrObservationBase.class));
277
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
278
        assertEquals(assertMessage, 2, occurrenceService.count(DerivedUnit.class));
279
        assertEquals(assertMessage, 1, occurrenceService.count(DnaSample.class));
280

    
281
        //delete field unit
282
        deleteResult = occurrenceService.delete(fieldUnit, config);
283
        assertTrue(deleteResult.toString(), deleteResult.isOk());
284
        assertEquals(assertMessage, 0, occurrenceService.count(SpecimenOrObservationBase.class));
285
        assertEquals(assertMessage, 0, occurrenceService.count(FieldUnit.class));
286
        assertEquals(assertMessage, 0, occurrenceService.count(DerivedUnit.class));
287
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
288
    }
289

    
290

    
291
    @Test
292
    @DataSet(value="OccurrenceServiceDeepDeleteTest.testDeleteStepByStep.xml", loadStrategy=CleanSweepInsertLoadStrategy.class)
293
    public void testDeleteDerivateHierarchyStepByStep(){
294
        UUID fieldUnitUuid = UUID.fromString("4d91a9bc-2af7-40f8-b6e6-545305301807");
295
        UUID derivedUnitUuid = UUID.fromString("f9c57904-e512-4927-90ad-f3833cdef967");
296
        UUID tissueSampleUuid = UUID.fromString("14b92fce-1236-455b-ba46-2a7e35d9230e");
297
        UUID dnaSampleUuid = UUID.fromString("60c31688-edec-4796-aa2f-28a7ea12256b");
298
        UUID sequenceUuid = UUID.fromString("24804b67-d6f7-48e5-811a-e7240230d305");
299

    
300
        String assertMessage = "Incorrect number of specimens after deletion.";
301
        DeleteResult deleteResult = null;
302
        SpecimenDeleteConfigurator config = new SpecimenDeleteConfigurator();
303

    
304
        FieldUnit fieldUnit = (FieldUnit) occurrenceService.load(fieldUnitUuid);
305
        DerivedUnit derivedUnit = (DerivedUnit) occurrenceService.load(derivedUnitUuid);
306
        DerivedUnit tissueSample = (DerivedUnit) occurrenceService.load(tissueSampleUuid);
307
        DnaSample dnaSample = (DnaSample) occurrenceService.load(dnaSampleUuid);
308
        Sequence consensusSequence = sequenceService.load(sequenceUuid);
309

    
310
        //check initial state
311
        assertNotNull(fieldUnit);
312
        assertNotNull(derivedUnit);
313
        assertNotNull(tissueSample);
314
        assertNotNull(dnaSample);
315
        assertNotNull(consensusSequence);
316

    
317
        assertEquals(assertMessage, 4, occurrenceService.count(SpecimenOrObservationBase.class));
318
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
319
        assertEquals(assertMessage, 3, occurrenceService.count(DerivedUnit.class));
320
        assertEquals(assertMessage, 1, occurrenceService.count(DnaSample.class));
321
        assertEquals("incorrect number of amplification results", 1, dnaSample.getAmplificationResults().size());
322
        assertEquals("number of sequences incorrect", 1, dnaSample.getSequences().size());
323
        assertEquals("incorrect number of single reads", 1, dnaSample.getAmplificationResults().iterator().next().getSingleReads().size());
324
        assertEquals("incorrect number of single reads", 1, consensusSequence.getSingleReads().size());
325
        assertEquals(consensusSequence.getSingleReads().iterator().next(), dnaSample.getAmplificationResults().iterator().next().getSingleReads().iterator().next());
326

    
327
        //allow deletion of molecular data
328
        config.setDeleteMolecularData(true);
329

    
330
        SingleRead singleRead = dnaSample.getAmplificationResults().iterator().next().getSingleReads().iterator().next();
331
        deleteResult = sequenceService.deleteSingleRead(singleRead, consensusSequence);
332
        assertTrue(deleteResult.toString(), deleteResult.isOk());
333
        assertEquals("incorrect number of single reads", 0, dnaSample.getAmplificationResults().iterator().next().getSingleReads().size());
334
        assertEquals("incorrect number of single reads", 0, consensusSequence.getSingleReads().size());
335
        assertEquals("incorrect number of single reads", 0, singleReadDao.count());
336

    
337
        //delete sequence
338
        deleteResult = sequenceService.delete(consensusSequence);
339
        assertTrue(deleteResult.toString(), deleteResult.isOk());
340
        assertEquals("number of sequences incorrect", 0, dnaSample.getSequences().size());
341

    
342

    
343
        //delete dna sample
344
        deleteResult = occurrenceService.delete(dnaSample, config);
345
        assertTrue(deleteResult.toString(), deleteResult.isOk());
346
        assertEquals(assertMessage, 3, occurrenceService.count(SpecimenOrObservationBase.class));
347
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
348
        assertEquals(assertMessage, 2, occurrenceService.count(DerivedUnit.class));
349
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
350

    
351
        //delete tissue sample
352
        deleteResult = occurrenceService.delete(tissueSample, config);
353
        assertTrue(deleteResult.toString(), deleteResult.isOk());
354
        assertEquals(assertMessage, 2, occurrenceService.count(SpecimenOrObservationBase.class));
355
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
356
        assertEquals(assertMessage, 1, occurrenceService.count(DerivedUnit.class));
357
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
358

    
359
        //delete derived unit
360
        deleteResult = occurrenceService.delete(derivedUnit, config);
361
        assertTrue(deleteResult.toString(), deleteResult.isOk());
362
        assertEquals(assertMessage, 1, occurrenceService.count(SpecimenOrObservationBase.class));
363
        assertEquals(assertMessage, 1, occurrenceService.count(FieldUnit.class));
364
        assertEquals(assertMessage, 0, occurrenceService.count(DerivedUnit.class));
365
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
366

    
367
        //delete field unit
368
        deleteResult = occurrenceService.delete(fieldUnit, config);
369

    
370
        assertTrue(deleteResult.toString(), deleteResult.isOk());
371
        assertEquals(assertMessage, 0, occurrenceService.count(SpecimenOrObservationBase.class));
372
        assertEquals(assertMessage, 0, occurrenceService.count(FieldUnit.class));
373
        assertEquals(assertMessage, 0, occurrenceService.count(DerivedUnit.class));
374
        assertEquals(assertMessage, 0, occurrenceService.count(DnaSample.class));
375
    }
376

    
377
    @Override
378
//    @Test
379
    public void createTestDataSet() throws FileNotFoundException {
380
        UUID sequenceA1Uuid = UUID.fromString("3db46d26-94ef-4759-aad8-42d0b9aea9b6");
381
        UUID sequenceA2Uuid = UUID.fromString("afa3771c-2b9d-46d7-82e0-8b9c050706e3");
382
        UUID sequenceB1Uuid = UUID.fromString("d7199db5-708e-470a-a573-9c760dd07cd1");
383
        UUID sequenceB2Uuid = UUID.fromString("1cb83575-38ea-4a8c-9418-d87163f425ce");
384
        UUID singleReadAUuid = UUID.fromString("82f538a1-2274-4d55-b27b-ed2f004ab5cd");
385
        UUID singleReadBUuid = UUID.fromString("fc74199a-89dc-40a0-9cbd-08cebebff4b5");
386

    
387
        //how the XML was generated
388
        Sequence sequenceA1 = Sequence.NewInstance("A");
389
        Sequence sequenceA2 = Sequence.NewInstance("T");
390
        Sequence sequenceB1 = Sequence.NewInstance("C");
391
        Sequence sequenceB2 = Sequence.NewInstance("G");
392

    
393
        SingleRead singleReadA = SingleRead.NewInstance();
394
        SingleRead singleReadB = SingleRead.NewInstance();
395

    
396
        sequenceA1.setUuid(sequenceA1Uuid);
397
        sequenceA2.setUuid(sequenceA2Uuid);
398
        sequenceB1.setUuid(sequenceB1Uuid);
399
        sequenceB1.setUuid(sequenceB2Uuid);
400
        singleReadA.setUuid(singleReadAUuid);
401
        singleReadB.setUuid(singleReadBUuid);
402

    
403
        SingleReadAlignment.NewInstance(sequenceA1, singleReadA);
404
        SingleReadAlignment.NewInstance(sequenceA2, singleReadA);
405
        SingleReadAlignment.NewInstance(sequenceB1, singleReadB);
406
        SingleReadAlignment.NewInstance(sequenceB2, singleReadB);
407

    
408
        sequenceService.save(sequenceA1);
409
        sequenceService.save(sequenceA2);
410
        sequenceService.save(sequenceB1);
411
        sequenceService.save(sequenceB2);
412

    
413
        commitAndStartNewTransaction(null);
414

    
415
        setComplete();
416
        endTransaction();
417

    
418
        try {
419
            writeDbUnitDataSetFile(new String[] {
420
                    "SpecimenOrObservationBase",
421
                    "SpecimenOrObservationBase_DerivationEvent",
422
                    "DerivationEvent",
423
                    "Sequence",
424
                    "SingleRead",
425
                    "SingleReadAlignment",
426
                    "Amplification",
427
                    "AmplificationResult",
428
                    "DescriptionElementBase",
429
                    "DescriptionBase",
430
                    "TaxonBase",
431
                    "TypeDesignationBase",
432
                    "TaxonName",
433
                    "TaxonName_TypeDesignationBase",
434
                    "HomotypicalGroup"
435
            }, "testDeepDelete_SingleRead");
436
        } catch (FileNotFoundException e) {
437
            e.printStackTrace();
438
        }
439

    
440
        System.out.println(sequenceA1.getUuid());
441
        System.out.println(sequenceA2.getUuid());
442
        System.out.println(sequenceB1.getUuid());
443
        System.out.println(sequenceB2.getUuid());
444
        System.out.println(singleReadA.getUuid());
445
        System.out.println(singleReadB.getUuid());
446
    }
447
}
(15-15/34)