From 3f30dc525498e4b82796692f8eba1a0cc129fd46 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Fri, 16 Sep 2016 09:50:48 +0200 Subject: HONEYCOMB-194 Raise unit test coverage of transle-impl to 80% Change-Id: I8d032e1a90004ee4bd6ebbae002a8e66a7e85919 Signed-off-by: Maros Marsalek --- .../impl/write/GenericListWriterTest.java | 60 ++++++++++++++++------ 1 file changed, 43 insertions(+), 17 deletions(-) (limited to 'infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/GenericListWriterTest.java') diff --git a/infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/GenericListWriterTest.java b/infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/GenericListWriterTest.java index d8bf96d86..2f50ece79 100644 --- a/infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/GenericListWriterTest.java +++ b/infra/translate-impl/src/test/java/io/fd/honeycomb/translate/impl/write/GenericListWriterTest.java @@ -17,12 +17,13 @@ package io.fd.honeycomb.translate.impl.write; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.spi.write.ListWriterCustomizer; +import io.fd.honeycomb.translate.write.WriteContext; +import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.Collections; import org.junit.Before; import org.junit.Test; @@ -36,30 +37,32 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class GenericListWriterTest { private static final InstanceIdentifier - DATA_OBJECT_INSTANCE_IDENTIFIER = InstanceIdentifier.create(IdentifiableDataObject.class); + DATA_OBJECT_ID = InstanceIdentifier.create(IdentifiableDataObject.class); @Mock private ListWriterCustomizer customizer; @Mock private WriteContext ctx; + private GenericListWriter writer; + @Mock + private IdentifiableDataObject before; + @Mock + private DataObjectIdentifier beforeKey; + @Mock + private IdentifiableDataObject after; + @Mock + private DataObjectIdentifier keyAfter; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); + writer = new GenericListWriter<>(DATA_OBJECT_ID, customizer); + when(before.getKey()).thenReturn(beforeKey); + when(after.getKey()).thenReturn(keyAfter); } @Test public void testUpdate() throws Exception { - final GenericListWriter writer = - new GenericListWriter<>(DATA_OBJECT_INSTANCE_IDENTIFIER, customizer); - - final IdentifiableDataObject before = mock(IdentifiableDataObject.class); - final DataObjectIdentifier beforeKey = mock(DataObjectIdentifier.class); - when(before.getKey()).thenReturn(beforeKey); - final IdentifiableDataObject after = mock(IdentifiableDataObject.class); - final DataObjectIdentifier keyAfter = mock(DataObjectIdentifier.class); - when(after.getKey()).thenReturn(keyAfter); - - assertEquals(DATA_OBJECT_INSTANCE_IDENTIFIER, writer.getManagedDataObjectType()); + assertEquals(DATA_OBJECT_ID, writer.getManagedDataObjectType()); final InstanceIdentifier keyedIdBefore = (InstanceIdentifier) InstanceIdentifier.create(Collections @@ -68,16 +71,39 @@ public class GenericListWriterTest { (InstanceIdentifier) InstanceIdentifier.create(Collections .singleton(new InstanceIdentifier.IdentifiableItem<>(IdentifiableDataObject.class, keyAfter))); - writer.update(DATA_OBJECT_INSTANCE_IDENTIFIER, before, after, ctx); + writer.update(DATA_OBJECT_ID, before, after, ctx); verify(customizer).updateCurrentAttributes(keyedIdBefore, before, after, ctx); - writer.update(DATA_OBJECT_INSTANCE_IDENTIFIER, before, null, ctx); + writer.update(DATA_OBJECT_ID, before, null, ctx); verify(customizer).deleteCurrentAttributes(keyedIdBefore, before, ctx); - writer.update(DATA_OBJECT_INSTANCE_IDENTIFIER, null, after, ctx); + writer.update(DATA_OBJECT_ID, null, after, ctx); verify(customizer).writeCurrentAttributes(keyedIdAfter, after, ctx); } private abstract static class IdentifiableDataObject implements DataObject, Identifiable {} private abstract static class DataObjectIdentifier implements Identifier {} + + @Test(expected = WriteFailedException.CreateFailedException.class) + public void testWriteFail() throws Exception { + doThrow(new IllegalStateException("test")).when(customizer).writeCurrentAttributes(DATA_OBJECT_ID, after, ctx); + writer = new GenericListWriter<>(DATA_OBJECT_ID, customizer); + writer.writeCurrentAttributes(DATA_OBJECT_ID, after, ctx); + } + + @Test(expected = WriteFailedException.UpdateFailedException.class) + public void testUpdateFail() throws Exception { + doThrow(new IllegalStateException("test")).when(customizer) + .updateCurrentAttributes(DATA_OBJECT_ID, before, after, ctx); + writer = new GenericListWriter<>(DATA_OBJECT_ID, customizer); + writer.updateCurrentAttributes(DATA_OBJECT_ID, before, after, ctx); + } + + @Test(expected = WriteFailedException.DeleteFailedException.class) + public void testDeleteFail() throws Exception { + doThrow(new IllegalStateException("test")).when(customizer) + .deleteCurrentAttributes(DATA_OBJECT_ID, before, ctx); + writer = new GenericListWriter<>(DATA_OBJECT_ID, customizer); + writer.deleteCurrentAttributes(DATA_OBJECT_ID, before, ctx); + } } \ No newline at end of file -- cgit 1.2.3-korg