diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2016-09-26 08:20:34 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2016-09-26 08:20:34 +0200 |
commit | 66588c9dbb53da4656af2983bb8f71ade863420c (patch) | |
tree | 589a23c216a27e90d0a9452fbb4832c82cbe37ec /vpp-common/vpp-translate-test/src/main/java/io/fd | |
parent | b9cc523c92d4fa3ed036e6ed1f0fcc3d9936b157 (diff) |
HONEYCOMB-116: generic merge test for reader customizers
Change-Id: I5c2505e6b3bcf622312f8dc324912507f6519a5b
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'vpp-common/vpp-translate-test/src/main/java/io/fd')
2 files changed, 34 insertions, 11 deletions
diff --git a/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ListReaderCustomizerTest.java b/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ListReaderCustomizerTest.java index 0509ef9e5..8917c02db 100644 --- a/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ListReaderCustomizerTest.java +++ b/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ListReaderCustomizerTest.java @@ -16,15 +16,16 @@ package io.fd.honeycomb.vpp.test.read; -import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import io.fd.honeycomb.translate.spi.read.ListReaderCustomizer; -import org.junit.Test; +import java.lang.reflect.Method; +import java.util.List; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.Identifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** * Generic test for classes implementing {@link ListReaderCustomizer} interface. @@ -36,8 +37,10 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public abstract class ListReaderCustomizerTest<D extends DataObject & Identifiable<K>, K extends Identifier<D>, B extends Builder<D>> extends ReaderCustomizerTest<D, B> { - protected ListReaderCustomizerTest(Class<D> dataObjectClass) { - super(dataObjectClass); + protected ListReaderCustomizerTest( + final Class<D> dataObjectClass, + final Class<? extends Builder<? extends DataObject>> parentBuilderClass) { + super(dataObjectClass, parentBuilderClass); } @Override @@ -45,8 +48,13 @@ public abstract class ListReaderCustomizerTest<D extends DataObject & Identifiab return ListReaderCustomizer.class.cast(super.getCustomizer()); } - @Test - public void testGetBuilder() throws Exception { - assertNotNull(getCustomizer().getBuilder(InstanceIdentifier.create(dataObjectClass))); + @Override + public void testMerge() throws Exception { + final Builder<? extends DataObject> parentBuilder = mock(parentBuilderClass); + final List<D> value = (List<D>) mock(List.class); + getCustomizer().merge(parentBuilder, value); + + final Method method = parentBuilderClass.getMethod("set" + dataObjectClass.getSimpleName(), List.class); + method.invoke(verify(parentBuilder), value); } } diff --git a/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ReaderCustomizerTest.java b/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ReaderCustomizerTest.java index 6486c8eb9..22dc2b6fd 100644 --- a/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ReaderCustomizerTest.java +++ b/vpp-common/vpp-translate-test/src/main/java/io/fd/honeycomb/vpp/test/read/ReaderCustomizerTest.java @@ -17,6 +17,8 @@ package io.fd.honeycomb.vpp.test.read; import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.ModificationCache; @@ -26,6 +28,7 @@ import io.fd.honeycomb.translate.read.ReadContext; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.vpp.test.util.FutureProducer; import io.fd.honeycomb.vpp.test.util.NamingContextHelper; +import java.lang.reflect.Method; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -52,12 +55,16 @@ public abstract class ReaderCustomizerTest<D extends DataObject, B extends Build @Mock protected MappingContext mappingContext; - protected ModificationCache cache; + protected final Class<? extends Builder<? extends DataObject>> parentBuilderClass; protected final Class<D> dataObjectClass; + protected ModificationCache cache; protected ReaderCustomizer<D, B> customizer; - protected ReaderCustomizerTest(Class<D> dataObjectClass) { + public ReaderCustomizerTest( + final Class<D> dataObjectClass, + final Class<? extends Builder<? extends DataObject>> parentBuilderClass) { this.dataObjectClass = dataObjectClass; + this.parentBuilderClass = parentBuilderClass; } @Before @@ -87,5 +94,13 @@ public abstract class ReaderCustomizerTest<D extends DataObject, B extends Build assertNotNull(customizer.getBuilder(InstanceIdentifier.create(dataObjectClass))); } - // TODO HONEYCOMB-116: create generic testMerge() + @Test + public void testMerge() throws Exception { + final Builder<? extends DataObject> parentBuilder = mock(parentBuilderClass); + final D value = mock(dataObjectClass); + getCustomizer().merge(parentBuilder, value); + + final Method method = parentBuilderClass.getMethod("set" + dataObjectClass.getSimpleName(), dataObjectClass); + method.invoke(verify(parentBuilder), value); + } } |