← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 6584: Unit test for csv data value set import

 

------------------------------------------------------------
revno: 6584
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Sun 2012-04-15 17:05:28 +0200
message:
  Unit test for csv data value set import
modified:
  dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetService.java
  dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DefaultDataValueSetService.java
  dhis-2/dhis-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetService.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetService.java	2012-04-14 18:32:00 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetService.java	2012-04-15 15:05:28 +0000
@@ -29,6 +29,7 @@
 
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.Reader;
 import java.io.Writer;
 import java.util.Date;
 import java.util.Set;
@@ -50,4 +51,6 @@
     ImportSummary saveDataValueSet( InputStream in, ImportOptions importOptions );
     
     ImportSummary saveDataValueSet( InputStream in, ImportOptions importOptions, TaskId taskId );
+    
+    ImportSummary saveDataValueSetCsv( Reader reader, ImportOptions importOptions, TaskId id );
 }

=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DefaultDataValueSetService.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DefaultDataValueSetService.java	2012-04-14 20:09:10 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/datavalueset/DefaultDataValueSetService.java	2012-04-15 15:05:28 +0000
@@ -37,6 +37,7 @@
 
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.Reader;
 import java.io.Writer;
 import java.util.Date;
 import java.util.HashSet;
@@ -74,6 +75,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import au.com.bytecode.opencsv.CSVReader;
+
 /**
  * @author Lars Helge Overland
  */
@@ -176,11 +179,25 @@
     
     public ImportSummary saveDataValueSet( InputStream in, ImportOptions importOptions, TaskId id )
     {
+        DataValueSet dataValueSet = new StreamingDataValueSet( XMLFactory.getXMLReader( in ) );
+        
+        return saveDataValueSet( importOptions, id, dataValueSet );
+    }
+
+    public ImportSummary saveDataValueSetCsv( Reader reader, ImportOptions importOptions, TaskId id )
+    {
+        DataValueSet dataValueSet = new StreamingCsvDataValueSet( new CSVReader( reader ) );
+        
+        return saveDataValueSet( importOptions, id, dataValueSet );
+    }
+    
+    private ImportSummary saveDataValueSet( ImportOptions importOptions, TaskId id, DataValueSet dataValueSet )
+    {
         notifier.clear( id, DATAVALUE_IMPORT ).notify( id, DATAVALUE_IMPORT, "Process started" );
         
         ImportSummary summary = new ImportSummary();
         
-        DataValueSet dataValueSet = new StreamingDataValueSet( XMLFactory.getXMLReader( in ) );
+        importOptions = importOptions != null ? importOptions : ImportOptions.getDefaultImportOptions();
         
         IdentifiableProperty dataElementIdScheme = dataValueSet.getDataElementIdScheme() != null ? IdentifiableProperty.valueOf( dataValueSet.getDataElementIdScheme().toUpperCase() ) : importOptions.getDataElementIdScheme();
         IdentifiableProperty orgUnitIdScheme = dataValueSet.getOrgUnitIdScheme() != null ? IdentifiableProperty.valueOf( dataValueSet.getOrgUnitIdScheme().toUpperCase() ) : importOptions.getOrgUnitIdScheme();

=== modified file 'dhis-2/dhis-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.java'
--- dhis-2/dhis-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.java	2012-04-15 14:52:54 +0000
+++ dhis-2/dhis-dxf2/src/test/java/org/hisp/dhis/dxf2/datavalueset/DataValueSetServiceTest.java	2012-04-15 15:05:28 +0000
@@ -31,6 +31,7 @@
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertTrue;
 
+import java.io.InputStreamReader;
 import java.util.Collection;
 
 import org.hisp.dhis.DhisTest;
@@ -162,6 +163,16 @@
         assertImportDataValues( summary );
     }
     
+    @Test
+    public void testImportDataValuesCsv()
+        throws Exception
+    {
+        ImportSummary summary = dataValueSetService.saveDataValueSetCsv( 
+            new InputStreamReader( new ClassPathResource( "datavalueset/dataValueSetB.csv" ).getInputStream() ), null, null );
+        
+        assertImportDataValues( summary );
+    }
+    
     private void assertImportDataValues( ImportSummary summary )
     {
         assertNotNull( summary );