diff --git a/clickstream/src/test/java/software/aws/solution/clickstream/db/DBUtilTest.java b/clickstream/src/test/java/software/aws/solution/clickstream/db/DBUtilTest.java index 7735ae5..ff0a441 100644 --- a/clickstream/src/test/java/software/aws/solution/clickstream/db/DBUtilTest.java +++ b/clickstream/src/test/java/software/aws/solution/clickstream/db/DBUtilTest.java @@ -15,7 +15,9 @@ package software.aws.solution.clickstream.db; +import android.content.ContentValues; import android.database.Cursor; +import android.database.SQLException; import android.net.Uri; import androidx.test.core.app.ApplicationProvider; @@ -28,13 +30,19 @@ import org.robolectric.annotation.Config; import software.aws.solution.clickstream.AnalyticsEventTest; import software.aws.solution.clickstream.client.AnalyticsEvent; +import software.aws.solution.clickstream.client.db.ClickstreamDBBase; import software.aws.solution.clickstream.client.db.ClickstreamDBUtil; +import software.aws.solution.clickstream.util.ReflectUtil; import java.util.Objects; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; @RunWith(RobolectricTestRunner.class) @Config(manifest = Config.NONE, sdk = 26) @@ -63,6 +71,21 @@ public void testInsertSingleEvent() { assertNotEquals(idInserted, 0); } + /** + * test insert single event failed. + * + * @throws Exception exception. + */ + @Test + public void testInsertSingleEventFailed() throws Exception { + ClickstreamDBBase clickstreamDBBase = mock(ClickstreamDBBase.class); + ReflectUtil.modifyFiled(dbUtil, "clickstreamDBBase", clickstreamDBBase); + doThrow(new SQLException("Mocked SQLException")).when(clickstreamDBBase).insert(any(Uri.class), any( + ContentValues.class)); + Uri uri = dbUtil.saveEvent(analyticsEvent); + assertNull(uri); + } + /** * test query all. */