source: trunk/test/unit/nl/tno/metagenomics/AssaySampleTests.groovy @ 9

Last change on this file since 9 was 9, checked in by robert@…, 12 years ago
File size: 2.7 KB
Line 
1package nl.tno.metagenomics
2
3import grails.test.*
4
5class AssaySampleTests extends GrailsUnitTestCase {
6    protected void setUp() {
7        super.setUp()
8    }
9
10    protected void tearDown() {
11        super.tearDown()
12    }
13
14        void testContainsData() {
15                Assay a1 = new Assay(assayToken: "abc1", name: "Assay 1")
16                Sample s1 = new Sample(sampleToken: "sam1", name: "Sample 1")
17                Sample s2 = new Sample(sampleToken: "sam2", name: "Sample 1")
18                Sample s3 = new Sample(sampleToken: "sam3", name: "Sample 1")
19
20                mockDomain( Assay, [a1])
21                mockDomain( Sample, [s1, s2, s3 ])
22                a1.save();
23                s1.save();
24
25                AssaySample as1 = new AssaySample()
26                mockDomain(AssaySample, [as1])
27               
28                s1.addToAssaySamples(as1)
29                a1.addToAssaySamples(as1)
30               
31                as1.save()
32               
33                // Initially the AS is empty
34                assert !as1.containsData();
35               
36                as1.tagSequence = "abc";
37                assert as1.containsData();
38
39                as1.tagSequence = "";
40                as1.tagName = "test";
41                assert as1.containsData();
42
43                as1.tagName = "";
44                as1.oligoNumber = "test";
45                assert as1.containsData();
46               
47                as1.oligoNumber = "";
48                assert !as1.containsData();
49
50                SequenceData sd1 = new SequenceData( sequenceFile: "test.fna" );
51                mockDomain(SequenceData, [sd1])
52                as1.addToSequenceData( sd1 );
53               
54                as1.save();
55               
56                assert as1.containsData();
57               
58                as1.tagSequence = "test"
59               
60                assert as1.containsData();
61        }
62       
63        void testMoveValuableData() {
64                Assay a1 = new Assay(assayToken: "abc1", name: "Assay 1")
65                Sample s1 = new Sample(sampleToken: "sam1", name: "Sample 1")
66                Sample s2 = new Sample(sampleToken: "sam2", name: "Sample 1")
67                Sample s3 = new Sample(sampleToken: "sam3", name: "Sample 1")
68
69                mockDomain( Assay, [a1])
70                mockDomain( Sample, [s1, s2, s3 ])
71                a1.save();
72                s1.save();
73
74                AssaySample as1 = new AssaySample()
75                AssaySample as2 = new AssaySample()
76                mockDomain(AssaySample, [as1, as2])
77               
78                s1.addToAssaySamples(as1)
79                a1.addToAssaySamples(as1)
80               
81                s2.addToAssaySamples(as2)
82                a1.addToAssaySamples(as2)
83
84                as1.save(); as2.save()
85               
86                assert !as1.containsData();
87                assert !as2.containsData();
88               
89                as1.tagSequence = "abc";
90                as1.tagName = "test";
91                as1.oligoNumber = "o101";
92
93                SequenceData sd1 = new SequenceData( sequenceFile: "test.fna" );
94                mockDomain(SequenceData, [sd1])
95                as1.addToSequenceData( sd1 );
96                as1.save();
97
98                assert as1.containsData();
99                assert !as2.containsData();
100               
101                as1.moveValuableDataTo(as2);
102               
103                // Now the state of as1 is undefined. Data might or might not be in there. However,
104                // the sequencedata should be moved anyway
105                assert !as1.sequenceData || as1.sequenceData.size() == 0
106                assert as2.containsData();
107                assert as2.tagSequence == "abc";
108                assert as2.tagName == "test";
109                assert as2.oligoNumber == "o101";
110                assert as2.sequenceData?.size() == 1
111                assert as2.sequenceData*.sequenceFile.contains( "test.fna" );
112        }
113}
Note: See TracBrowser for help on using the repository browser.