Changeset 1257 for trunk/test


Ignore:
Timestamp:
Dec 9, 2010, 9:12:10 PM (10 years ago)
Author:
robert@…
Message:

Added an export and import functionality for templates, as described in ticket #76

Location:
trunk/test/unit/dbnp/studycapturing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/dbnp/studycapturing/TemplateFieldTests.groovy

    r959 r1257  
    22
    33import grails.test.*
     4import dbnp.data.Ontology
    45
    56class TemplateFieldTests extends GrailsUnitTestCase {
     
    185186            fail();
    186187        }
     188    }
     189
     190    void testContentEquals() {
     191                // Check whether the fields matter
     192                TemplateField tf1 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Weight', type: TemplateFieldType.LONG, unit: 'kg', comments: 'Weight field' )
     193                TemplateField tf2 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Weight', type: TemplateFieldType.LONG,  unit: 'kg', comments: 'Weight field 2' )
     194                TemplateField tf3 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Length', type: TemplateFieldType.LONG,  unit: 'm', comments: 'Length field' )
     195                TemplateField tf4 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Length', type: TemplateFieldType.LONG,  unit: 'm', comments: 'Length field', required: true )
     196                TemplateField tf5 = new TemplateField( entity: dbnp.studycapturing.Study, name: 'Length', type: TemplateFieldType.LONG,  unit: 'm', comments: 'Length field', required: true )
     197
     198                TemplateField tf6 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Species', type: TemplateFieldType.ONTOLOGYTERM )
     199                TemplateField tf7 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Species', type: TemplateFieldType.ONTOLOGYTERM )
     200
     201                TemplateField tf8 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Species', type: TemplateFieldType.STRINGLIST )
     202                TemplateField tf9 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Species', type: TemplateFieldType.STRINGLIST )
     203
     204                mockDomain( TemplateField, [tf1, tf2, tf3, tf4, tf5, tf6, tf7, tf8, tf9] );
     205
     206                assert( tf1.contentEquals( tf1 ) );
     207                assert( tf1.contentEquals( tf2 ) );
     208                assert( tf2.contentEquals( tf1 ) );
     209                assert( !tf1.contentEquals( tf3 ) );
     210                assert( !tf3.contentEquals( tf4 ) );
     211                assert( !tf5.contentEquals( tf4 ) );
     212
     213                // Test ontology fields
     214                Ontology o1 = new Ontology( ncboId: 1000, ncboVersionedId: 14192, name: "Ontology 1" )
     215                Ontology o2 = new Ontology( ncboId: 1000, ncboVersionedId: 14192, name: "Ontology 2" )
     216                Ontology o3 = new Ontology( ncboId: 1000, ncboVersionedId: 5123, name: "Ontology 3" )
     217                Ontology o4 = new Ontology( ncboId: 4123, ncboVersionedId: 14192, name: "Ontology 4" )
     218
     219                tf6.addToOntologies( o1 )
     220
     221                // Different number of ontologies
     222                assert( !tf6.contentEquals( tf7 ) );
     223
     224                tf7.addToOntologies( o1 );
     225
     226                // Same ontologies
     227                assert( tf6.contentEquals( tf7 ) );
     228
     229                tf7.ontologies.clear()
     230                tf7.addToOntologies( o2 );
     231
     232                // Ontologies with the same ncboId
     233                assert( !tf6.contentEquals( tf7 ) );
     234
     235                tf6.ontologies.clear(); tf7.ontologies.clear()
     236                tf6.addToOntologies( o1 )
     237                tf6.addToOntologies( o4 )
     238                tf7.addToOntologies( o4 );
     239                tf7.addToOntologies( o1 );
     240
     241                // Different order but same ontologies
     242                assert( tf6.contentEquals( tf7 ) );
     243
     244                // Test listentries
     245
     246                assert( tf8.contentEquals( tf9 ) );
     247
     248                TemplateFieldListItem l1 = new TemplateFieldListItem( name: 'string1' );
     249                TemplateFieldListItem l2 = new TemplateFieldListItem( name: 'string1' );
     250                TemplateFieldListItem l3 = new TemplateFieldListItem( name: 'string2' );
     251                TemplateFieldListItem l4 = new TemplateFieldListItem( name: 'string3' );
     252
     253                tf8.addToListEntries( l1 );
     254
     255                // Different number of list entries
     256                assert( !tf8.contentEquals( tf9 ) );
     257
     258                tf9.addToListEntries( l1 );
     259
     260                // Same list entries
     261                assert( tf8.contentEquals( tf9 ) );
     262
     263                tf9.listEntries.clear();
     264                tf9.addToListEntries( l2 );
     265
     266                // Different list entries with the same name
     267                assert( tf8.contentEquals( tf9 ) );
     268
     269                tf9.listEntries.clear();
     270                tf9.addToListEntries( l3 );
     271
     272                // Different list entries
     273                assert( !tf8.contentEquals( tf9 ) );
     274
     275                // Same entries but different order
     276                tf8.listEntries.clear();
     277                tf9.listEntries.clear();
     278                tf8.addToListEntries( l2 );
     279                tf8.addToListEntries( l3 );
     280                tf9.addToListEntries( l3 );
     281                tf9.addToListEntries( l2 );
     282
     283                // Different order but same list entries
     284                assert( tf8.contentEquals( tf9 ) );
    187285
    188286    }
  • trunk/test/unit/dbnp/studycapturing/TemplateTests.groovy

    r959 r1257  
    22
    33import grails.test.*
     4import dbnp.authentication.*
    45
    56class TemplateTests extends GrailsUnitTestCase {
     
    2728                assert t2.inUse();
    2829                assert !t3.inUse();
     30    }
     31
     32    void testContentEquals() {
     33                // Basic checks
     34                Template t1 = new Template( entity: dbnp.studycapturing.Subject );
     35                Template t2 = new Template( entity: dbnp.studycapturing.Subject );
     36                Template t3 = new Template( entity: dbnp.studycapturing.Study );
     37
     38                mockDomain( Template, [t1, t2, t3] );
     39
     40                assert t1.contentEquals( t1 );
     41                assert t1.contentEquals( t2 );
     42                assert t2.contentEquals( t1 );
     43                assert !t3.contentEquals( t1 );
     44                assert !t2.contentEquals( t3 );
     45
     46                // Check whether other fields matter
     47                t1.name = "Test 1";
     48                t1.description = "Long description"
     49                t1.owner = new SecUser( username: "TestUser" )
     50                t2.name = "Test 2";
     51                t2.description = "Short description"
     52
     53                assert( t1.contentEquals( t2 ) );
     54
     55                // Check whether the fields matter
     56                TemplateField tf1 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Weight', type: TemplateFieldType.LONG,  unit: 'kg', comment: 'Weight field' )
     57                TemplateField tf2 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Weight', type: TemplateFieldType.LONG,  unit: 'kg', comment: 'Weight field 2' )
     58                TemplateField tf3 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'Length', type: TemplateFieldType.LONG,  unit: 'm', comment: 'Length field' )
     59                TemplateField tf4 = new TemplateField( entity: dbnp.studycapturing.Subject, name: 'BMI', type: TemplateFieldType.LONG,  unit: 'kg/m2', comment: 'BMI field', required: true )
     60
     61                mockDomain( TemplateField, [tf1, tf2, tf3, tf4] );
     62
     63                t1.addToFields( tf1 );
     64                t2.addToFields( tf1 );
     65
     66                // Same fields
     67                assert( t1.contentEquals( t2 ) );
     68
     69                t1.fields.clear();
     70                t1.addToFields( tf2 );
     71
     72                // Fields with equal properties
     73                assert( t1.contentEquals( t2 ) );
     74
     75                t1.fields.clear();
     76                t1.addToFields( tf3 );
     77
     78                // Fields with inequal properties
     79                assert( !t1.contentEquals( t2 ) );
     80
     81                t1.addToFields( tf1 );
     82                t2.addToFields( tf3 );
     83
     84                // Same fields in different order
     85                assert( t1.contentEquals( t2 ) );
     86
     87                t1.addToFields( tf4 )
     88
     89                // Different number of fields
     90                assert( !t1.contentEquals( t2 ) );
    2991
    3092    }
     93
    3194}
Note: See TracChangeset for help on using the changeset viewer.