From 9ac68bac54d95b0342cab52bf39a4321f1f42d79 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Tue, 12 Apr 2016 10:12:58 +0200 Subject: HONEYCOMB-9: Simplify reader APIs, remove list of DataObjects Change-Id: I0cb3f20ef4595b0143dcc7e0ad5475f121a9cc86 Signed-off-by: Maros Marsalek --- .../v3po/impl/data/VppOperationalDataTreeTest.java | 3 +- .../honeycomb/v3po/impl/vppstate/VppStateTest.java | 79 +++++++++------------- .../v3po/impl/vppstate/VppStateUtils.java | 13 ++-- 3 files changed, 42 insertions(+), 53 deletions(-) (limited to 'v3po/impl/src/test') diff --git a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java index 62ddf5ca0..f4b2faa3e 100644 --- a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java +++ b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java @@ -28,7 +28,6 @@ import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import io.fd.honeycomb.v3po.impl.trans.r.ReaderRegistry; -import java.util.Collections; import java.util.Map; import org.junit.Before; import org.junit.Test; @@ -79,7 +78,7 @@ public class VppOperationalDataTreeTest { doReturn(id).when(serializer).fromYangInstanceIdentifier(yangId); final DataObject dataObject = mock(DataObject.class); - doReturn(Collections.singletonList(dataObject)).when(reader).read(id); + doReturn(Optional.of(dataObject)).when(reader).read(id); when(serializer.toNormalizedNode(id, dataObject)).thenReturn(entry); final DataContainerChild expectedValue = mock(DataContainerChild.class); diff --git a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateTest.java b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateTest.java index cdb3024d8..f44ca52c8 100644 --- a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateTest.java +++ b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateTest.java @@ -17,13 +17,16 @@ package io.fd.honeycomb.v3po.impl.vppstate; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.anyString; +import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; import io.fd.honeycomb.v3po.impl.trans.r.VppReader; +import io.fd.honeycomb.v3po.impl.trans.r.impl.CompositeListVppReader; import io.fd.honeycomb.v3po.impl.trans.r.impl.CompositeRootVppReader; import io.fd.honeycomb.v3po.impl.trans.r.util.DelegatingReaderRegistry; import java.util.Collections; @@ -42,6 +45,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.Version; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.VersionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.BridgeDomain; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.BridgeDomainBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.BridgeDomainKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.bridge.domain.L2Fib; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.bridge.domain.L2FibKey; @@ -162,20 +166,19 @@ public class VppStateTest { @Test public void testReadSpecific() throws Exception { - final List read = readerRegistry.read(InstanceIdentifier.create(VppState.class)); - assertEquals(read.size(), 1); - assertVersion((VppState) read.get(0)); + final Optional read = readerRegistry.read(InstanceIdentifier.create(VppState.class)); + assertTrue(read.isPresent()); + assertVersion((VppState) read.get()); } @Test public void testReadBridgeDomains() throws Exception { - VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(0); + VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(); - List read = + Optional read = readerRegistry.read(InstanceIdentifier.create(VppState.class).child(BridgeDomains.class)); -// System.err.println(read); - assertEquals(read.size(), 1); - assertEquals(readRoot.getBridgeDomains(), read.get(0)); + assertTrue(read.isPresent()); + assertEquals(readRoot.getBridgeDomains(), read.get()); } /** @@ -184,86 +187,68 @@ public class VppStateTest { @Test public void testReadL2Fib() throws Exception { // Deep child without a dedicated reader with specific l2fib key - List read = + Optional read = readerRegistry.read(InstanceIdentifier.create(VppState.class).child(BridgeDomains.class).child( BridgeDomain.class, new BridgeDomainKey("bdn1")) .child(L2Fib.class, new L2FibKey(new PhysAddress("01:02:03:04:05:06")))); -// System.err.println(read); - assertEquals(read.size(), 1); + assertTrue(read.isPresent()); // non existing l2fib read = readerRegistry.read(InstanceIdentifier.create(VppState.class).child(BridgeDomains.class).child( BridgeDomain.class, new BridgeDomainKey("bdn1")) .child(L2Fib.class, new L2FibKey(new PhysAddress("FF:FF:FF:04:05:06")))); -// System.err.println(read); - assertEquals(read.size(), 0); - } - - /** - * L2fib does not have a dedicated reader, relying on auto filtering - */ - @Test - public void testReadL2FibAll() throws Exception { - // Deep child without a dedicated reader - final InstanceIdentifier id = InstanceIdentifier.create(VppState.class).child(BridgeDomains.class).child( - BridgeDomain.class, new BridgeDomainKey("bdn1")).child(L2Fib.class); - final List read = readerRegistry.read(id); -// System.err.println(read); - assertEquals(read.toString(), read.size(), 2); - - // test if direct read returns the same value - final List read2 = vppStateReader.read(id); -// System.err.println(read); - assertEquals(read, read2); + assertFalse(read.isPresent()); } @Test public void testReadBridgeDomainAll() throws Exception { - VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(0); + VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(); - final List read = - readerRegistry.read(InstanceIdentifier.create(VppState.class).child(BridgeDomains.class).child( + final CompositeListVppReader bridgeDomainReader = + VppStateUtils.getBridgeDomainReader(api); + + final List read = + bridgeDomainReader.readList(InstanceIdentifier.create(VppState.class).child(BridgeDomains.class).child( BridgeDomain.class)); -// System.err.println(read); - assertEquals(read.size(), 2); + assertEquals(readRoot.getBridgeDomains().getBridgeDomain(), read); } @Test public void testReadBridgeDomain() throws Exception { - VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(0); + VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(); - final List read = + final Optional read = readerRegistry.read(InstanceIdentifier.create(VppState.class).child(BridgeDomains.class).child( BridgeDomain.class, new BridgeDomainKey("bdn1"))); - assertEquals(read.size(), 1); + assertTrue(read.isPresent()); assertEquals(Iterables.find(readRoot.getBridgeDomains().getBridgeDomain(), new Predicate() { @Override public boolean apply(final BridgeDomain input) { return input.getKey().getName().equals("bdn1"); } - }), read.get(0)); + }), read.get()); } + // FIXME @Ignore("Bridge domain customizer does not check whether the bd exists or not and fails with NPE, add it there") @Test public void testReadBridgeDomainNotExisting() throws Exception { - final List read = + final Optional read = readerRegistry.read(InstanceIdentifier.create(VppState.class).child(BridgeDomains.class).child( BridgeDomain.class, new BridgeDomainKey("NOT EXISTING"))); - assertEquals(read.size(), 0); + assertFalse(read.isPresent()); } @Test public void testReadVersion() throws Exception { - VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(0); + VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class)).get(); - List read = + Optional read = readerRegistry.read(InstanceIdentifier.create(VppState.class).child(Version.class)); -// System.err.println(read); - assertEquals(read.size(), 1); - assertEquals(readRoot.getVersion(), read.get(0)); + assertTrue(read.isPresent()); + assertEquals(readRoot.getVersion(), read.get()); } } \ No newline at end of file diff --git a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateUtils.java b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateUtils.java index e700d2e1f..73113174c 100644 --- a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateUtils.java +++ b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/vppstate/VppStateUtils.java @@ -49,10 +49,8 @@ final class VppStateUtils { final ChildVppReader versionReader = new CompositeChildVppReader<>( Version.class, new VersionCustomizer(vppApi)); - final CompositeListVppReader - bridgeDomainReader = new CompositeListVppReader<>( - BridgeDomain.class, - new BridgeDomainCustomizer(vppApi)); + final CompositeListVppReader bridgeDomainReader = + getBridgeDomainReader(vppApi); final ChildVppReader bridgeDomainsReader = new CompositeChildVppReader<>( BridgeDomains.class, @@ -69,4 +67,11 @@ final class VppStateUtils { VppRWUtils.emptyAugReaderList(), new ReflexiveRootReaderCustomizer<>(VppStateBuilder.class)); } + + static CompositeListVppReader getBridgeDomainReader( + final @Nonnull vppApi vppApi) { + return new CompositeListVppReader<>( + BridgeDomain.class, + new BridgeDomainCustomizer(vppApi)); + } } -- cgit 1.2.3-korg