=== modified file 'dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java' --- dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2010-12-31 05:07:49 +0000 +++ dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2011-01-04 09:54:15 +0000 @@ -627,8 +627,11 @@ { MapView mapView = mappingStore.getMapView( id ); - mapView.getParentOrganisationUnit().setLevel( - organisationUnitService.getLevelOfOrganisationUnit( mapView.getParentOrganisationUnit() ) ); + if ( mapView != null ) + { + mapView.getParentOrganisationUnit().setLevel( + organisationUnitService.getLevelOfOrganisationUnit( mapView.getParentOrganisationUnit() ) ); + } return mapView; } @@ -641,7 +644,7 @@ public Collection getAllMapViews() { Collection mapViews = mappingStore.getAllMapViews(); - + if ( mapViews.size() > 0 ) { for ( MapView mapView : mapViews ) === modified file 'dhis-2/dhis-services/dhis-service-mapping/src/test/java/org/hisp/dhis/mapping/MappingServiceTest.java' --- dhis-2/dhis-services/dhis-service-mapping/src/test/java/org/hisp/dhis/mapping/MappingServiceTest.java 2010-11-30 13:04:58 +0000 +++ dhis-2/dhis-services/dhis-service-mapping/src/test/java/org/hisp/dhis/mapping/MappingServiceTest.java 2011-01-04 09:54:15 +0000 @@ -28,6 +28,11 @@ */ import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertNull; +import static junit.framework.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; import org.hisp.dhis.DhisSpringTest; import org.hisp.dhis.dataelement.DataElement; @@ -66,6 +71,8 @@ private Indicator indicator; private DataElement dataElement; + + private DataElementGroup dataElementGroup; private PeriodType periodType; @@ -107,6 +114,10 @@ dataElement = createDataElement( 'A' ); dataElementService.addDataElement( dataElement ); + + dataElementGroup = createDataElementGroup( 'A' ); + dataElementGroup.getMembers().add( dataElement ); + dataElementService.addDataElementGroup( dataElementGroup ); periodType = periodService.getPeriodTypeByName( MonthlyPeriodType.NAME ); period = createPeriod( periodType, getDate( 2000, 1, 1 ), getDate( 2000, 2, 1 ) ); @@ -124,8 +135,8 @@ public void testAddGetMapView() { MapView mapView = new MapView( "MapViewA", OrganisationUnit.FEATURETYPE_MULTIPOLYGON, - MappingService.MAP_VALUE_TYPE_INDICATOR, indicatorGroup, indicator, new DataElementGroup(), - new DataElement(), MappingService.MAP_DATE_TYPE_FIXED, periodType, period, "", "", organisationUnit, + MappingService.MAP_VALUE_TYPE_INDICATOR, indicatorGroup, indicator, dataElementGroup, + dataElement, MappingService.MAP_DATE_TYPE_FIXED, periodType, period, "", "", organisationUnit, organisationUnitLevel, MappingService.MAPLEGENDSET_TYPE_AUTOMATIC, 1, 1, "", "A", "B", mapLegendSet, 5, 20, "1", "1", 1 ); @@ -138,6 +149,165 @@ assertEquals( period, mappingService.getMapView( idA ).getPeriod() ); } + @Test + public void testGetDeleteMapViewByName() + { + MapView mapView = new MapView( "MapViewA", OrganisationUnit.FEATURETYPE_MULTIPOLYGON, + MappingService.MAP_VALUE_TYPE_INDICATOR, indicatorGroup, indicator, dataElementGroup, + dataElement, MappingService.MAP_DATE_TYPE_FIXED, periodType, period, "", "", organisationUnit, + organisationUnitLevel, MappingService.MAPLEGENDSET_TYPE_AUTOMATIC, 1, 1, "", "A", "B", mapLegendSet, 5, 20, + "1", "1", 1 ); + + int id = mappingService.addMapView( mapView ); + + mapView = mappingService.getMapViewByName( "MapViewA" ); + + mappingService.deleteMapView( mapView ); + + assertNull( mappingService.getMapView( id ) ); + } + + @Test + public void testGetAllMapViews() + { + MapView mapView1 = new MapView( "MapViewA", OrganisationUnit.FEATURETYPE_MULTIPOLYGON, + MappingService.MAP_VALUE_TYPE_INDICATOR, indicatorGroup, indicator, dataElementGroup, + dataElement, MappingService.MAP_DATE_TYPE_FIXED, periodType, period, "", "", organisationUnit, + organisationUnitLevel, MappingService.MAPLEGENDSET_TYPE_AUTOMATIC, 1, 1, "", "A", "B", mapLegendSet, 5, 20, + "1", "1", 1 ); + + MapView mapView2 = new MapView( "MapViewB", OrganisationUnit.FEATURETYPE_POLYGON, + MappingService.MAP_VALUE_TYPE_DATAELEMENT, indicatorGroup, indicator, dataElementGroup, + dataElement, MappingService.MAP_DATE_TYPE_START_END, periodType, period, "", "", organisationUnit, + organisationUnitLevel, MappingService.MAPLEGENDSET_TYPE_AUTOMATIC, 1, 1, "", "A", "B", mapLegendSet, 5, 20, + "2", "2", 1 ); + + mappingService.addMapView( mapView1 ); + mappingService.addMapView( mapView2 ); + + assertEquals( 2, mappingService.getAllMapViews().size() ); + } + + + @Test + public void testGetMapViewsByFeatureType() + { + MapView mapView1 = new MapView( "MapViewA", OrganisationUnit.FEATURETYPE_MULTIPOLYGON, + MappingService.MAP_VALUE_TYPE_INDICATOR, indicatorGroup, indicator, dataElementGroup, + dataElement, MappingService.MAP_DATE_TYPE_FIXED, periodType, period, "", "", organisationUnit, + organisationUnitLevel, MappingService.MAPLEGENDSET_TYPE_AUTOMATIC, 1, 1, "", "A", "B", mapLegendSet, 5, 20, + "1", "1", 1 ); + + MapView mapView2 = new MapView( "MapViewB", OrganisationUnit.FEATURETYPE_POLYGON, + MappingService.MAP_VALUE_TYPE_DATAELEMENT, indicatorGroup, indicator, dataElementGroup, + dataElement, MappingService.MAP_DATE_TYPE_START_END, periodType, period, "", "", organisationUnit, + organisationUnitLevel, MappingService.MAPLEGENDSET_TYPE_AUTOMATIC, 1, 1, "", "A", "B", mapLegendSet, 5, 20, + "2", "2", 1 ); + + MapView mapView3 = new MapView( "MapViewC", OrganisationUnit.FEATURETYPE_MULTIPOLYGON, + MappingService.MAP_VALUE_TYPE_DATAELEMENT, indicatorGroup, indicator, dataElementGroup, + dataElement, MappingService.MAP_DATE_TYPE_START_END, periodType, period, "", "", organisationUnit, + organisationUnitLevel, MappingService.MAPLEGENDSET_TYPE_AUTOMATIC, 1, 1, "", "A", "B", mapLegendSet, 5, 20, + "3", "3", 1 ); + + mappingService.addMapView( mapView1 ); + mappingService.addMapView( mapView2 ); + mappingService.addMapView( mapView3 ); + + assertEquals( 1, mappingService.getMapViewsByFeatureType( OrganisationUnit.FEATURETYPE_POLYGON ).size() ); + assertEquals( 2, mappingService.getMapViewsByFeatureType( OrganisationUnit.FEATURETYPE_MULTIPOLYGON ).size() ); + } + + // ------------------------------------------------------------------------- + // MapLayer + // ------------------------------------------------------------------------- + + @Test + public void testAddGetMapLayer() + { + MapLayer mapLayer = new MapLayer( "MapLayerA", MappingService.MAP_LAYER_TYPE_BASELAYER, "", "", "A", 0.1, "B", 1); + + int id = mappingService.addMapLayer( mapLayer ); + + assertEquals( "MapLayerA", mappingService.getMapLayer( id ).getName() ); + assertEquals( MappingService.MAP_LAYER_TYPE_BASELAYER, mappingService.getMapLayer( id ).getType() ); + assertEquals( "A", mappingService.getMapLayer( id ).getFillColor() ); + assertEquals( "B", mappingService.getMapLayer( id ).getStrokeColor() ); + assertEquals( 0.1, mappingService.getMapLayer( id ).getFillOpacity() ); + assertEquals( 1, mappingService.getMapLayer( id ).getStrokeWidth() ); + } + + @Test + public void testGetUpdateDeleteMapLayerByName() + { + MapLayer mapLayer = new MapLayer( "MapLayerA", MappingService.MAP_LAYER_TYPE_BASELAYER, "", "", "A", 0.1, "B", 1); + + int id = mappingService.addMapLayer( mapLayer ); + + mapLayer = mappingService.getMapLayer( id ); + + mapLayer.setName( "MapLayerB" ); + mapLayer.setFillOpacity( 0.05 ); + mapLayer.setStrokeWidth( 0 ); + + mappingService.updateMapLayer( mapLayer ); + + assertEquals( "MapLayerB", mappingService.getMapLayerByName( "MapLayerB" ).getName() ); + assertEquals( 0.05, mappingService.getMapLayerByName( "MapLayerB" ).getFillOpacity() ); + assertEquals( 0, mappingService.getMapLayerByName( "MapLayerB" ).getStrokeWidth() ); + } + + @Test + public void testGetAllMapLayers() + { + MapLayer mapLayer1 = new MapLayer( "MapLayerA", MappingService.MAP_LAYER_TYPE_BASELAYER, "mapSourceA", "layerA", "A", 0.1, "B", 1); + MapLayer mapLayer2 = new MapLayer( "MapLayerB", MappingService.MAP_LAYER_TYPE_OVERLAY, "", "", "A", 0.1, "B", 1); + MapLayer mapLayer3 = new MapLayer( "MapLayerC", MappingService.MAP_LAYER_TYPE_OVERLAY, "mapSourceC", "layerC", "C", 0.1, "D", 2); + MapLayer mapLayer4 = new MapLayer( "MapLayerD", MappingService.MAP_LAYER_TYPE_BASELAYER, "mapSourceD", "layerA", "C", 0.1, "D", 2); + + int idA = mappingService.addMapLayer( mapLayer1 ); + int idB = mappingService.addMapLayer( mapLayer2 ); + int idC = mappingService.addMapLayer( mapLayer3 ); + + assertEquals( mapLayer1, mappingService.getMapLayer( idA ) ); + assertEquals( mapLayer2, mappingService.getMapLayer( idB ) ); + assertEquals( mapLayer3, mappingService.getMapLayer( idC ) ); + assertTrue( !mappingService.getAllMapLayers().contains( mapLayer4 ) ); + + } + + @Test + public void testGetMapLayersByTypeOrMapSource() + { + List baseLayers = new ArrayList(); + List overlayLayers = new ArrayList(); + + MapLayer mapLayer1 = new MapLayer( "MapLayerA", MappingService.MAP_LAYER_TYPE_BASELAYER, "mapSourceA", "layerA", "A", 0.1, "B", 1); + MapLayer mapLayer2 = new MapLayer( "MapLayerB", MappingService.MAP_LAYER_TYPE_OVERLAY, "mapSourceB", "", "A", 0.1, "B", 1); + MapLayer mapLayer3 = new MapLayer( "MapLayerC", MappingService.MAP_LAYER_TYPE_OVERLAY, "mapSourceC", "layerC", "C", 0.1, "D", 2); + MapLayer mapLayer4 = new MapLayer( "MapLayerD", MappingService.MAP_LAYER_TYPE_BASELAYER, "mapSourceD", "layerA", "C", 0.1, "D", 2); + + baseLayers.add( mapLayer1 ); + baseLayers.add( mapLayer4 ); + + overlayLayers.add( mapLayer2 ); + overlayLayers.add( mapLayer3 ); + + int idA = mappingService.addMapLayer( mapLayer1 ); + int idB = mappingService.addMapLayer( mapLayer2 ); + int idC = mappingService.addMapLayer( mapLayer3 ); + int idD = mappingService.addMapLayer( mapLayer4 ); + + assertEquals( baseLayers, mappingService.getMapLayersByType( MappingService.MAP_LAYER_TYPE_BASELAYER ) ); + assertEquals( overlayLayers, mappingService.getMapLayersByType( MappingService.MAP_LAYER_TYPE_OVERLAY ) ); + + assertEquals( mappingService.getMapLayer( idA ), mappingService.getMapLayerByMapSource( "mapSourceA" ) ); + assertEquals( mappingService.getMapLayer( idB ), mappingService.getMapLayerByMapSource( "mapSourceB" ) ); + assertEquals( mappingService.getMapLayer( idC ), mappingService.getMapLayerByMapSource( "mapSourceC" ) ); + assertEquals( mappingService.getMapLayer( idD ), mappingService.getMapLayerByMapSource( "mapSourceD" ) ); + + } + // ------------------------------------------------------------------------- // Map value tests // -------------------------------------------------------------------------