source: trunk/test/unit/dbnp/studycapturing/TemplateEntityTests.groovy @ 550

Last change on this file since 550 was 550, checked in by keesvb, 11 years ago

added entity property to TemplateField?; added validator to Template to ensure fields are of the correct entity, updated BootStrap? accordingly, updated tests accordingly

File size: 2.6 KB
Line 
1package dbnp.studycapturing
2
3import grails.test.*
4
5class TemplateEntityTests extends GrailsUnitTestCase {
6
7        def testStudy;
8        def eventTemplate1;
9        def eventTemplate2;
10        def sampleTemplate1;
11
12        protected void setUp() {
13                // We create a study with 2 events (with 2 different templates),
14                // 2 samples with the same template + 1 sample without a template and
15                // 2 subjects without a template
16                // There are no sampling events
17                super.setUp()
18
19                // Create the template itself
20                eventTemplate1 = new Template(
21                        name: 'Event Template 1',
22                        entity: Event,
23                        fields: [
24                                new TemplateField(
25                                        name: 'testStartDate',
26                                        type: TemplateFieldType.DATE,
27                                        entity: Event
28                                )
29                        ]
30                );
31
32                // Create the template itself
33                eventTemplate2 = new Template(
34                        name: 'Event Template 2',
35                        entity: Event,
36                        fields: [
37                                new TemplateField(
38                                        name: 'testStartDate',
39                                        type: TemplateFieldType.RELTIME,
40                                        entity: Event
41                                )
42                        ]
43                );
44
45                // Create the template itself
46                sampleTemplate1 = new Template(
47                        name: 'Sample Template 1',
48                        entity: dbnp.studycapturing.Event,
49                        fields: [
50                                new TemplateField(
51                                        name: 'testStartDate',
52                                        type: TemplateFieldType.RELTIME,
53                                        entity: Event
54                                )
55                        ]
56                );
57
58                testStudy = new Study(
59                        title: 'Test study',
60                        events: [
61                                new Event(
62                                        template: eventTemplate1,
63                                        startTime: 3600,
64                                        endTime: 7200
65                                ),
66                                new Event(
67                                        template: eventTemplate2,
68                                        startTime: 3600,
69                                        endTime: 7200
70                                )
71                        ],
72                        samples: [
73                                new Sample(
74                                        template: sampleTemplate1
75                                ),
76                                new Sample(
77                                        template: sampleTemplate1
78                                ),
79                                new Sample(
80
81                                )
82                        ],
83                        subjects: [
84                                new Subject(
85                                        name: 'Wihout template 1'
86                                ),
87                                new Subject(
88                                        name: 'Wihout template 2'
89                                )
90                        ]
91
92                )
93
94        }
95
96        protected void tearDown() {
97                super.tearDown()
98        }
99
100        void testGiveTemplates() {
101                def eventTemplates = TemplateEntity.giveTemplates(testStudy.events);
102                assert eventTemplates.size() == 2
103                assert eventTemplates.contains(eventTemplate1);
104                assert eventTemplates.contains(eventTemplate2);
105
106                def sampleTemplates = TemplateEntity.giveTemplates(testStudy.samples);
107                assert sampleTemplates.size() == 1
108                assert sampleTemplates.contains(sampleTemplate1)
109
110                def subjectTemplates = TemplateEntity.giveTemplates(testStudy.subjects);
111                assert subjectTemplates.size() == 0
112        }
113
114        /** *
115         *  This test assures that adding of a TemplateField that has another entity than the Template fails.
116         */
117        void testTemplateFieldEntity() {
118                eventTemplate1.addToFields(
119                        new TemplateField(name: 'Should fail',type: TemplateFieldType.STRING, entity: Sample)
120                )
121                assert !eventTemplate1.validate()
122                assert !eventTemplate1.save()
123        }
124
125
126}
Note: See TracBrowser for help on using the repository browser.