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

File:
1 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    }
Note: See TracChangeset for help on using the changeset viewer.