root/trunk/test/integration/gscf/StudyTests.groovy @ 1504

Revision 1504, 2.8 KB (checked in by s.h.sikkema@…, 3 years ago)

Partially fixed the integration tests

  • Property svn:keywords set to Rev Author Date
Line 
1package gscf
2
3import grails.test.*
4import dbnp.studycapturing.*
5import org.dbnp.gdt.Template
6
7/**
8 * Test the creation of a Subject and its TemplateEntity functionality on data model level
9 *
10 * @author keesvb
11 * @since 20100511
12 * @package dbnp.studycapturing
13 *
14 * Revision information:
15 * $Rev$
16 * $Author$
17 * $Date$
18 */
19class StudyTests extends GrailsUnitTestCase {
20
21        final String testStudyName = "Test study"
22        final String testStudyTemplateName = "Academic study"
23        final String testStudyCode = "AAA-Test"
24    final String testStudyDescription = "Description of Test Study"
25        final Date testStudyStartDate = Date.parse('yyyy-MM-dd','2007-12-11')
26        final Date testStudyStartDate2 = Date.parse('yyyy-MM-dd','2008-05-11')
27        final String testStudyStartDateString2 = "11-5-2008"
28        // The following dates do net yet work:
29        //final String testStudyStartDateString2 = "11-05-2010"
30        //final String testStudyStartDateString2 = "Tue Dec 13 00:00:00 EST 2008"
31
32        protected void setUp() {
33                super.setUp()
34
35                // Look up academic template
36                def studyTemplate = Template.findByName(testStudyTemplateName)
37                assert studyTemplate
38
39                def study = new Study(
40                        title: testStudyName,
41                        template: studyTemplate,
42                        startDate: testStudyStartDate,
43                        code: testStudyCode,
44            description: testStudyDescription
45                )
46
47                if (!study.validate()) {
48                        study.errors.each { println it}
49                }
50                assert study.validate()
51
52
53                assert study.save(flush: true)
54
55        }
56
57        void testSave() {
58                // Try to retrieve the study and make sure it's the same
59                def studyDB = Study.findByCode(testStudyCode)
60                assert studyDB
61                assert studyDB.title.equals(testStudyName)
62                assert studyDB.code.equals(testStudyCode)
63                assert studyDB.template.name.equals(testStudyTemplateName)
64                assert studyDB.startDate.equals(testStudyStartDate)
65
66                // A study without a title should not be saveable
67                studyDB.title = null
68                assert !studyDB.validate()
69        }
70
71        void testDomainFields() {
72                def study = Study.findByCode(testStudyCode)
73                assert study
74
75                // Make sure the domain fields exist
76                assert study.fieldExists('title')
77                assert study.fieldExists('startDate')
78                assert study.fieldExists('code')
79
80
81                // Make sure they are domain fields
82                assert study.isDomainField('title')
83                assert study.isDomainField('startDate')
84                assert study.isDomainField('code')
85               
86        }
87
88        void testSetDate() {
89                def study = Study.findByCode(testStudyCode)
90                assert study
91
92                // Set a new date, using a string, and check whether that is stored correctly
93                study.setFieldValue("startDate",testStudyStartDateString2)
94                assert study.validate()
95                assert study.save(flush:true)
96                assert study.getFieldValue("startDate").equals(testStudyStartDate2)
97
98        }
99
100        protected void tearDown() {
101
102                // Delete the created study
103                /*def study = Study.findByCode(testStudyCode)
104                assert study
105
106                study.delete()
107                assert Study.findByCode(testStudyCode) == null
108                */
109                super.tearDown()
110        }
111
112}
Note: See TracBrowser for help on using the browser.