You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/02/04 03:25:21 UTC

incubator-usergrid git commit: Added simple test case

Repository: incubator-usergrid
Updated Branches:
  refs/heads/two-dot-o-import ec9356914 -> c9742c0ef


Added simple test case


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/c9742c0e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/c9742c0e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/c9742c0e

Branch: refs/heads/two-dot-o-import
Commit: c9742c0ef66e2cec475957d2ba0d22f8ddc87498
Parents: ec93569
Author: Todd Nine <tn...@apigee.com>
Authored: Tue Feb 3 19:25:20 2015 -0700
Committer: Todd Nine <tn...@apigee.com>
Committed: Tue Feb 3 19:25:20 2015 -0700

----------------------------------------------------------------------
 .../importer/FileImportStatistics.java          |   5 +-
 .../importer/FileImportStatisticsTest.java      | 133 +++++++++++++++++++
 2 files changed, 135 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c9742c0e/stack/services/src/main/java/org/apache/usergrid/management/importer/FileImportStatistics.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/importer/FileImportStatistics.java b/stack/services/src/main/java/org/apache/usergrid/management/importer/FileImportStatistics.java
index 45a8371..e455c29 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/importer/FileImportStatistics.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/importer/FileImportStatistics.java
@@ -52,7 +52,6 @@ public class FileImportStatistics {
      * Invoke when an entity has been successfully written
      */
     public void entityWritten() {
-
         entitiesWritten.incrementAndGet();
     }
 
@@ -78,11 +77,11 @@ public class FileImportStatistics {
 
         if ( failed > 0 ) {
             state = FileImport.State.FAILED;
-            message = "Successfully imported " + written + " entities";
+            message = "Failed to import " + failed + " entities.  Successfully imported " + written + " entities";
         }
         else {
             state = FileImport.State.FINISHED;
-            message = "Failed to import " + failed + " entities.  Successfully imported " + written + " entities";
+            message = null;
         }
 
         updateFileImport( written, failed, state, message );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c9742c0e/stack/services/src/test/java/org/apache/usergrid/management/importer/FileImportStatisticsTest.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/management/importer/FileImportStatisticsTest.java b/stack/services/src/test/java/org/apache/usergrid/management/importer/FileImportStatisticsTest.java
new file mode 100644
index 0000000..d4872bc
--- /dev/null
+++ b/stack/services/src/test/java/org/apache/usergrid/management/importer/FileImportStatisticsTest.java
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.usergrid.management.importer;
+
+
+import java.util.UUID;
+
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+
+import org.apache.usergrid.persistence.EntityManager;
+import org.apache.usergrid.persistence.entities.FileImport;
+import org.apache.usergrid.persistence.model.util.UUIDGenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+
+public class FileImportStatisticsTest {
+
+    @Test
+    public void testSuccess() throws Exception {
+
+        final EntityManager em = mock( EntityManager.class );
+
+        final UUID importFileId = UUIDGenerator.newTimeUUID();
+
+
+        final FileImport fileImport = new FileImport();
+        fileImport.setUuid( importFileId );
+
+        when( em.get( importFileId, FileImport.class ) ).thenReturn( fileImport );
+
+
+        final FileImportStatistics fileImportStatistics = new FileImportStatistics( importFileId, em );
+
+        final long expectedCount = 100;
+
+        for ( long i = 0; i < expectedCount; i++ ) {
+            fileImportStatistics.entityWritten();
+        }
+
+
+        fileImportStatistics.complete();
+
+
+        ArgumentCaptor<FileImport> savedFileImport = ArgumentCaptor.forClass( FileImport.class );
+
+        verify( em ).update( savedFileImport.capture() );
+
+        final FileImport updated = savedFileImport.getValue();
+
+        assertSame( "Same instance should be updated", fileImport, updated );
+
+
+        assertEquals( "Same count expected", expectedCount, updated.getImportedEntityCount() );
+
+        assertNull( updated.getErrorMessage() );
+    }
+
+
+    @Test
+    public void testBoth() throws Exception {
+
+        final EntityManager em = mock( EntityManager.class );
+
+        final UUID importFileId = UUIDGenerator.newTimeUUID();
+
+
+        final FileImport fileImport = new FileImport();
+        fileImport.setUuid( importFileId );
+
+        when( em.get( importFileId, FileImport.class ) ).thenReturn( fileImport );
+
+
+        final FileImportStatistics fileImportStatistics = new FileImportStatistics( importFileId, em );
+
+        final long expectedSuccess = 100;
+
+        for ( long i = 0; i < expectedSuccess; i++ ) {
+            fileImportStatistics.entityWritten();
+        }
+
+        final long expectedFails = 10;
+
+        for ( long i = 0; i < expectedFails; i++ ) {
+            fileImportStatistics.entityFailed( "Failed to write entity " + i );
+        }
+
+
+        fileImportStatistics.complete();
+
+
+        ArgumentCaptor<FileImport> savedFileImport = ArgumentCaptor.forClass( FileImport.class );
+
+        verify( em ).update( savedFileImport.capture() );
+
+        final FileImport updated = savedFileImport.getValue();
+
+        assertSame( "Same instance should be updated", fileImport, updated );
+
+        assertEquals( "Same count expected", expectedSuccess, updated.getImportedEntityCount() );
+
+        assertEquals( "Same fail expected", expectedFails, updated.getFailedEntityCount() );
+
+        assertEquals( "Correct error message",
+            "Failed to import " + expectedFails + " entities.  Successfully imported " + expectedSuccess + " entities",
+            updated.getErrorMessage() );
+
+        //TODO get the connections from the file import
+    }
+}