Changeset 964


Ignore:
Timestamp:
Oct 21, 2010, 3:04:57 PM (6 years ago)
Author:
business@…
Message:

changed SampleTests? to comply with parentEvent being nullable, delete via parent event now works

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/integration/gscf/SampleTests.groovy

    r959 r964  
    4444                assert study
    4545
     46                // Look up sample template
     47                def sampleTemplate = Template.findByName(testSampleTemplateName)
     48                assert sampleTemplate
     49
     50                // Create sample with the retrieved study as parent
     51                def sample = new Sample(
     52                    name: testSampleName,
     53                    template: sampleTemplate
     54                )
     55
     56                // At this point, the sample should not validate, because it doesn't have a parent study assigned
     57                assert !sample.validate()
     58
     59                // Add the sample to the retrieved parent study
     60                study.addToSamples(sample)
     61                assert study.samples.find { it.name == sample.name}
     62
     63                // Now, the sample should validate
     64                if (!sample.validate()) {
     65                        sample.errors.each { println it}
     66                }
     67                assert sample.validate()
     68
     69                // Make sure the sample is saved to the database
     70                assert sample.save(flush: true)
     71
     72        }
     73
     74        private void addParentSamplingEvent() {
     75
     76                // Retrieve the sample
     77                def sampleDB = Sample.findByName(testSampleName)
     78                assert sampleDB
     79
     80                // Retrieve the study that should have been created in StudyTests
     81                def study = Study.findByTitle(testStudyName)
     82                assert study
     83
    4684                // Look up sampling event template
    4785                def samplingEventTemplate = Template.findByName(testSamplingEventTemplateName)
    4886                assert samplingEventTemplate
    49 
    50                 // Look up sample template
    51                 def sampleTemplate = Template.findByName(testSampleTemplateName)
    52                 assert sampleTemplate
    5387
    5488                // Create parent sampling event
     
    5791                        duration: testSamplingEventDuration,
    5892                        template: samplingEventTemplate,
    59                         sampleTemplate: sampleTemplate
     93                        sampleTemplate: Template.findByName(testSampleTemplateName)
    6094                )
    6195
     
    68102                assert samplingEvent.save(flush:true)
    69103
    70                 // Create sample with the retrieved study as parent
    71                 def sample = new Sample(
    72                     name: testSampleName,
    73                     template: sampleTemplate,
    74                     parentEvent: samplingEvent
    75                 )
    76 
    77                 // At this point, the sample should not validate, because it doesn't have a parent study assigned
    78                 assert !sample.validate()
    79 
    80                 // Add the sample to the retrieved parent study
    81                 study.addToSamples(sample)
    82                 assert study.samples.find { it.name == sample.name}
    83 
    84                 // Now, the sample should validate
    85                 if (!sample.validate()) {
    86                         sample.errors.each { println it}
    87                 }
    88                 assert sample.validate()
    89 
    90                 // Make sure the sample is saved to the database
    91                 assert sample.save(flush: true)
    92 
     104                // Add sample to the sampling event
     105                samplingEvent.addToSamples(sampleDB)
     106
     107                // Make sure the sampling event is really the parent event of the sample
     108                assert sampleDB.parentEvent
     109                assert sampleDB.parentEvent == samplingEvent
     110                assert sampleDB.parentEvent.startTime.equals(testSamplingEventTime)
     111
     112        }
     113
     114        void testStudyPublish() {
     115                def sampleDB = Sample.findByName(testSampleName)
     116                assert sampleDB
     117
     118                // Retrieve the parent study
     119                def study = Study.findByTitle(testStudyName)
     120                assert study
     121
     122                // Make sure the study validates at this point
     123                assert study.validate()
     124
     125                // Try to publish the study, should fail as it has a sample without a parent sampling event
     126                //study.published = true
     127                assert !study.validate()
     128
     129                // Add parent sampling event
     130                addParentSamplingEvent()
     131
     132                // Add parent subject
     133
     134                // Now the study should validate
     135                assert study.validate()
    93136        }
    94137
     
    100143                assert sampleDB.name.equals(testSampleName)
    101144                assert sampleDB.template.name.equals(testSampleTemplateName)
    102                 assert sampleDB.parentEvent
    103                 assert sampleDB.parentEvent.startTime.equals(testSamplingEventTime)
    104145
    105146                println "The sample has parentEvent ${sampleDB.parentEvent.encodeAsHTML()}"
     
    108149                assert !sampleDB.validate()
    109150
    110                 // A sample without a parent SamplingEvent should not be saveable
    111                 sampleDB.name = testSampleName
    112                 sampleDB.parentEvent = null
    113                 assert !sampleDB.validate()
    114151        }
    115152
    116153        void testDelete() {
    117154                def sampleDB = Sample.findByName(testSampleName)
     155                assert sampleDB
    118156                sampleDB.delete()
    119157                try {
     
    177215                assert study
    178216
     217                // Add parent sampling event
     218                addParentSamplingEvent()
     219
    179220                def event = sampleDB.parentEvent
    180221                assert event
     
    205246
    206247                // Retrieve the sample's sampling event
     248                addParentSamplingEvent()
    207249                def event = sampleDB.parentEvent
    208250                assert event
     
    229271                assert study.save()
    230272
    231                 // Use the deleteSamplingEvent method
     273                // Use the deleteEventGroup method
    232274                def msg = study.deleteEventGroup(group)
    233275                println msg
     276                if (!study.validate()) {
     277                        study.errors.each { println it}
     278                }
     279                assert study.validate()
     280
    234281                assert study.save()
    235282
     
    326373
    327374        void testFindViaSamplingEvent() {
     375
     376                // Add parent sampling event
     377                addParentSamplingEvent()
     378               
    328379                // Try to retrieve the sampling event by using the time...
    329380                // (should be also the parent study but that's not yet implemented)
     
    334385                assert samples
    335386                assert samples.size() == 1
    336                 assert samples.first().name == testSampleName
     387                assert samples.every {it.name == testSampleName}
    337388        }
    338389
Note: See TracChangeset for help on using the changeset viewer.