=== added directory 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events' === added file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/PersonServiceTest.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/PersonServiceTest.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/events/PersonServiceTest.java 2013-09-19 13:06:14 +0000 @@ -0,0 +1,100 @@ +package org.hisp.dhis.dxf2.events; + +/* + * Copyright (c) 2004-2013, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import org.hisp.dhis.DhisTest; +import org.hisp.dhis.common.IdentifiableObjectManager; +import org.hisp.dhis.dxf2.events.person.Gender; +import org.hisp.dhis.dxf2.events.person.PersonService; +import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.patient.Patient; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @author Morten Olav Hansen + */ +public class PersonServiceTest + extends DhisTest +{ + @Autowired + private PersonService personService; + + @Autowired + private IdentifiableObjectManager manager; + + private Patient maleA; + private Patient maleB; + private Patient femaleA; + private Patient femaleB; + + private OrganisationUnit organisationUnitA; + private OrganisationUnit organisationUnitB; + + @Override + protected void setUpTest() throws Exception + { + organisationUnitA = createOrganisationUnit( 'A' ); + organisationUnitB = createOrganisationUnit( 'B' ); + + organisationUnitB.setParent( organisationUnitA ); + + maleA = createPatient( 'B', Patient.MALE, organisationUnitA ); + maleB = createPatient( 'B', Patient.MALE, organisationUnitB ); + femaleA = createPatient( 'A', Patient.FEMALE, organisationUnitA ); + femaleB = createPatient( 'A', Patient.FEMALE, organisationUnitB ); + + manager.save( organisationUnitA ); + manager.save( organisationUnitB ); + manager.save( maleA ); + manager.save( maleB ); + manager.save( femaleA ); + manager.save( femaleB ); + } + + @Override + public boolean emptyDatabaseAfterTest() + { + return true; + } + + @Test + public void testGetPersons() + { + Assert.assertEquals( 4, personService.getPersons().getPersons().size() ); + } + + @Test + public void testGetPersonByGender() + { + Assert.assertEquals( 2, personService.getPersons( Gender.MALE ).getPersons().size() ); + Assert.assertEquals( 2, personService.getPersons( Gender.FEMALE ).getPersons().size() ); + } +} === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/JacksonUtilsTest.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/JacksonUtilsTest.java 2013-09-19 12:37:27 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/JacksonUtilsTest.java 2013-09-19 13:06:14 +0000 @@ -30,7 +30,6 @@ import org.hisp.dhis.common.view.DetailedView; import org.hisp.dhis.common.view.ExportView; -import org.hisp.dhis.dxf2.metadata.MetaData; import org.hisp.dhis.dxf2.utils.JacksonUtils; import org.junit.Test; === modified file 'dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/dbms/HibernateDbmsManager.java' --- dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/dbms/HibernateDbmsManager.java 2013-08-23 16:05:01 +0000 +++ dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/dbms/HibernateDbmsManager.java 2013-09-19 13:06:14 +0000 @@ -132,6 +132,8 @@ emptyTable( "categorycombos_categories" ); emptyTable( "categories_categoryoptions" ); + emptyTable( "patient" ); + emptyTable( "organisationunit" ); emptyTable( "version" ); emptyTable( "mocksource" ); === modified file 'dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java' --- dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2013-09-12 07:19:15 +0000 +++ dhis-2/dhis-support/dhis-support-test/src/main/java/org/hisp/dhis/DhisConvenienceTest.java 2013-09-19 13:06:14 +0000 @@ -114,7 +114,7 @@ public abstract class DhisConvenienceTest { protected static final Log log = LogFactory.getLog( DhisConvenienceTest.class ); - + protected static final String BASE_UID = "123456789a"; protected static final String BASE_IN_UID = "inabcdefgh"; protected static final String BASE_DE_UID = "deabcdefgh"; @@ -124,7 +124,7 @@ private static final String EXT_TEST_DIR = System.getProperty( "user.home" ) + File.separator + "dhis2_test_dir"; private static Date date; - + protected static final double DELTA = 0.01; // ------------------------------------------------------------------------- @@ -150,13 +150,13 @@ protected OrganisationUnitGroupService organisationUnitGroupService; protected AggregatedDataValueService aggregatedDataValueService; - + protected AggregatedOrgUnitDataValueService aggregatedOrgUnitDataValueService; protected PeriodService periodService; protected ConstantService constantService; - + protected ValidationRuleService validationRuleService; protected ValidationCriteriaService validationCriteriaService; @@ -172,9 +172,9 @@ protected ProgramStageService programStageService; protected DataEntryFormService dataEntryFormService; - + protected UserService userService; - + protected MessageService messageService; static @@ -192,7 +192,7 @@ /** * Creates a date. - * + * * @param year the year. * @param month the month. * @param day the day of month. @@ -212,7 +212,7 @@ /** * Creates a date. - * + * * @param day the day of the year. * @return a date. */ @@ -231,7 +231,7 @@ * implementation type of the collection in contrast to the native equals * method. This is useful for black-box testing where one will not know the * implementation type of the returned collection for a method. - * + * * @param actual the actual collection to check. * @param reference the reference objects to check against. * @return true if the collections are equal, false otherwise. @@ -304,7 +304,7 @@ * service; making the test unaware of the implementation and thus * re-usable. A weakness is that the field name of the dependency must be * assumed. - * + * * @param targetService the target service. * @param fieldName the name of the dependency field in the target service. * @param dependency the dependency. @@ -324,7 +324,7 @@ * service; making the test unaware of the implementation and thus * re-usable. A weakness is that the field name of the dependency must be * assumed. - * + * * @param targetService the target service. * @param fieldName the name of the dependency field in the target service. * @param dependency the dependency. @@ -333,9 +333,9 @@ protected void setDependency( Object targetService, String fieldName, Object dependency, Class clazz ) { try - { + { targetService = getRealObject( targetService ); - + String setMethodName = "set" + fieldName.substring( 0, 1 ).toUpperCase() + fieldName.substring( 1, fieldName.length() ); @@ -354,7 +354,7 @@ /** * If the given class is advised by Spring AOP it will return the target class, * i.e. the advised class. If not the given class is returned unchanged. - * + * * @param object the object. */ @SuppressWarnings("unchecked") @@ -365,10 +365,10 @@ { return (T) ((Advised) object).getTargetSource().getTarget(); } - + return object; } - + // ------------------------------------------------------------------------- // Create object methods // ------------------------------------------------------------------------- @@ -463,7 +463,7 @@ return categoryOptionCombo; } - + /** * @param categoryCombo the category combo. * @param categoryOptions the category options. @@ -472,14 +472,14 @@ public static DataElementCategoryOptionCombo createCategoryOptionCombo( DataElementCategoryCombo categoryCombo, DataElementCategoryOption... categoryOptions ) { DataElementCategoryOptionCombo categoryOptionCombo = new DataElementCategoryOptionCombo(); - + categoryOptionCombo.setCategoryCombo( categoryCombo ); - + for ( DataElementCategoryOption categoryOption : categoryOptions ) { categoryOptionCombo.getCategoryOptions().add( categoryOption ); } - + return categoryOptionCombo; } @@ -682,7 +682,7 @@ return period; } - + /** * @param isoPeriod the ISO period string. */ @@ -807,7 +807,7 @@ expression.setDescription( "Description" + uniqueCharacter ); expression.setDataElementsInExpression( dataElementsInExpression ); expression.setOptionCombosInExpression( optionCombosInExpression ); - + return expression; } @@ -836,7 +836,7 @@ return importDataValue; } - + public static MapLegend createMapLegend( char uniqueCharacter, Double startValue, Double endValue ) { MapLegend legend = new MapLegend(); @@ -883,12 +883,12 @@ UserCredentials credentials = new UserCredentials(); credentials.setUsername( "username" ); - + user.setUserCredentials( credentials ); - + return user; } - + public static UserGroup createUserGroup( char uniqueCharacter, Set users ) { UserGroup userGroup = new UserGroup(); @@ -927,11 +927,27 @@ public static Patient createPatient( char uniqueChar, OrganisationUnit organisationUnit ) { Patient patient = new Patient(); + patient.setAutoFields(); patient.setName( "FirstName" + uniqueChar ); patient.setGender( Patient.MALE ); patient.setBirthDate( getDate( 1970, 1, 1 ) ); patient.setRegistrationDate( new Date() ); + patient.setOrganisationUnit( organisationUnit ); + + return patient; + } + + public static Patient createPatient( char uniqueChar, String gender, OrganisationUnit organisationUnit ) + { + Patient patient = new Patient(); + patient.setAutoFields(); + + patient.setName( "FirstName" + uniqueChar ); + patient.setGender( gender ); + patient.setBirthDate( getDate( 1970, 1, 1 ) ); + patient.setRegistrationDate( new Date() ); + patient.setOrganisationUnit( organisationUnit ); return patient; } @@ -957,7 +973,7 @@ /** * @param uniqueCharacter A unique character to identify the object. * @param sql A query statement to retreive record/data from database. - * + * * @return a sqlView instance */ protected static SqlView createSqlView( char uniqueCharacter, String sql ) @@ -973,7 +989,7 @@ /** * @param uniqueCharacter A unique character to identify the object. - * + * * @return a concept instance */ protected static Concept createConcept( char uniqueCharacter ) @@ -985,23 +1001,23 @@ return concept; } - + /** * @param uniqueCharacter A unique character to identify the object. * @param value The value for constant - * + * * @return a constant instance */ protected static Constant createConstant( char uniqueCharacter, double value ) { Constant constant = new Constant(); - + constant.setName( "Constant" + uniqueCharacter ); constant.setValue( value ); - + return constant; } - + // ------------------------------------------------------------------------- // Supportive methods // ------------------------------------------------------------------------- @@ -1010,7 +1026,7 @@ * Injects the externalDir property of LocationManager to * user.home/dhis2_test_dir. LocationManager dependency must be retrieved * from the context up front. - * + * * @param locationManager The LocationManager to be injected with the * external directory. */