summaryrefslogtreecommitdiffstats
path: root/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write
diff options
context:
space:
mode:
Diffstat (limited to 'infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write')
-rw-r--r--infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriterTest.java112
-rw-r--r--infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/NoopWriterRegistryTest.java29
-rw-r--r--infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/registry/FlatWriterRegistryBuilderTest.java43
3 files changed, 182 insertions, 2 deletions
diff --git a/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriterTest.java b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriterTest.java
new file mode 100644
index 000000000..14c9c6044
--- /dev/null
+++ b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriterTest.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * Licensed 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 io.fd.honeycomb.translate.util.write;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import io.fd.honeycomb.translate.write.WriteContext;
+import io.fd.honeycomb.translate.write.WriteFailedException;
+import javax.annotation.Nonnull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class AbstractGenericWriterTest {
+
+ private InstanceIdentifier<DataObject> id = InstanceIdentifier.create(DataObject.class);
+ @Mock
+ private DataObject before;
+ @Mock
+ private DataObject after;
+ @Mock
+ private WriteContext ctx;
+ private TestingWriter t;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ t = spy(new TestingWriter());
+ }
+
+ @Test
+ public void testDelete() throws Exception {
+ before = mock(DataObject.class);
+ t.update(id, before, null, ctx);
+
+ verify(t).deleteCurrentAttributes(id, before, ctx);
+ }
+
+ @Test
+ public void testUpdate() throws Exception {
+ before = mock(DataObject.class);
+ t.update(id, before, after, ctx);
+
+ verify(t).updateCurrentAttributes(id, before, after, ctx);
+ }
+
+ @Test
+ public void testNoUpdate() throws Exception {
+ before = mock(DataObject.class);
+ t.update(id, before, before, ctx);
+
+ verify(t, times(0)).updateCurrentAttributes(id, before, after, ctx);
+ }
+
+ @Test
+ public void testCreate() throws Exception {
+ before = mock(DataObject.class);
+ t.update(id, null, after, ctx);
+
+ verify(t).writeCurrentAttributes(id, after, ctx);
+ }
+
+ private static class TestingWriter extends AbstractGenericWriter<DataObject> {
+
+ TestingWriter() {
+ super(InstanceIdentifier.create(DataObject.class));
+ }
+
+ @Override
+ protected void writeCurrentAttributes(@Nonnull final InstanceIdentifier<DataObject> id,
+ @Nonnull final DataObject data, @Nonnull final WriteContext ctx)
+ throws WriteFailedException {
+
+ }
+
+ @Override
+ protected void deleteCurrentAttributes(@Nonnull final InstanceIdentifier<DataObject> id,
+ @Nonnull final DataObject dataBefore, @Nonnull final WriteContext ctx)
+ throws WriteFailedException {
+
+ }
+
+ @Override
+ protected void updateCurrentAttributes(@Nonnull final InstanceIdentifier<DataObject> id,
+ @Nonnull final DataObject dataBefore,
+ @Nonnull final DataObject dataAfter,
+ @Nonnull final WriteContext ctx) throws WriteFailedException {
+
+ }
+ }
+
+} \ No newline at end of file
diff --git a/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/NoopWriterRegistryTest.java b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/NoopWriterRegistryTest.java
new file mode 100644
index 000000000..411f24bc3
--- /dev/null
+++ b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/NoopWriterRegistryTest.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * Licensed 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 io.fd.honeycomb.translate.util.write;
+
+import org.junit.Test;
+
+public class NoopWriterRegistryTest {
+
+ @Test
+ public void testNoop() throws Exception {
+ final NoopWriterRegistry noopWriterRegistry = new NoopWriterRegistry();
+ noopWriterRegistry.update(null, null);
+ noopWriterRegistry.close();
+ }
+} \ No newline at end of file
diff --git a/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/registry/FlatWriterRegistryBuilderTest.java b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/registry/FlatWriterRegistryBuilderTest.java
index 79590a5a0..4f7ab2894 100644
--- a/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/registry/FlatWriterRegistryBuilderTest.java
+++ b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/write/registry/FlatWriterRegistryBuilderTest.java
@@ -7,15 +7,22 @@ import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
+import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
import io.fd.honeycomb.translate.util.DataObjects;
+import io.fd.honeycomb.translate.write.DataObjectUpdate;
+import io.fd.honeycomb.translate.write.WriteContext;
import io.fd.honeycomb.translate.write.Writer;
+import io.fd.honeycomb.translate.write.registry.WriterRegistry;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.junit.Test;
import org.opendaylight.yangtools.yang.binding.DataObject;
@@ -23,7 +30,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class FlatWriterRegistryBuilderTest {
-
@Test
public void testRelationsBefore() throws Exception {
final FlatWriterRegistryBuilder flatWriterRegistryBuilder = new FlatWriterRegistryBuilder();
@@ -47,6 +53,38 @@ public class FlatWriterRegistryBuilderTest {
}
@Test
+ public void testBuild() throws Exception {
+ final FlatWriterRegistryBuilder flatWriterRegistryBuilder = new FlatWriterRegistryBuilder();
+ final Writer<? extends DataObject> writer = mockWriter(DataObjects.DataObject3.class);
+ flatWriterRegistryBuilder.add(writer);
+ final WriterRegistry build = flatWriterRegistryBuilder.build();
+ final InstanceIdentifier<DataObjects.DataObject3> id = InstanceIdentifier.create(DataObjects.DataObject3.class);
+ final DataObjectUpdate update = mock(DataObjectUpdate.class);
+ WriterRegistry.DataObjectUpdates updates = new WriterRegistry.DataObjectUpdates(
+ Multimaps.forMap(Collections.singletonMap(id, update)),
+ Multimaps.forMap(Collections.emptyMap()));
+ build.update(updates, mock(WriteContext.class));
+
+ verify(writer)
+ .update(any(InstanceIdentifier.class), any(DataObject.class), any(DataObject.class), any(WriteContext.class));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testBuildUnknownWriter() throws Exception {
+ final FlatWriterRegistryBuilder flatWriterRegistryBuilder = new FlatWriterRegistryBuilder();
+ final Writer<? extends DataObject> writer = mockWriter(DataObjects.DataObject3.class);
+ flatWriterRegistryBuilder.add(writer);
+ final WriterRegistry build = flatWriterRegistryBuilder.build();
+
+ final InstanceIdentifier<DataObjects.DataObject1> id2 = InstanceIdentifier.create(DataObjects.DataObject1.class);
+ final DataObjectUpdate update2 = mock(DataObjectUpdate.class);
+ final WriterRegistry.DataObjectUpdates updates = new WriterRegistry.DataObjectUpdates(
+ Multimaps.forMap(Collections.singletonMap(id2, update2)),
+ Multimaps.forMap(Collections.emptyMap()));
+ build.update(updates, mock(WriteContext.class));
+ }
+
+ @Test
public void testRelationsAfter() throws Exception {
final FlatWriterRegistryBuilder flatWriterRegistryBuilder = new FlatWriterRegistryBuilder();
/*
@@ -56,7 +94,8 @@ public class FlatWriterRegistryBuilderTest {
flatWriterRegistryBuilder.add(mockWriter(DataObjects.DataObject1.class));
flatWriterRegistryBuilder.addAfter(mockWriter(DataObjects.DataObject2.class), DataObjects.DataObject1.IID);
flatWriterRegistryBuilder.addAfter(mockWriter(DataObjects.DataObject3.class), DataObjects.DataObject2.IID);
- flatWriterRegistryBuilder.addAfter(mockWriter(DataObjects.DataObject4.class), DataObjects.DataObject2.IID);
+ flatWriterRegistryBuilder.addAfter(mockWriter(DataObjects.DataObject4.class),
+ Lists.newArrayList(DataObjects.DataObject2.IID, DataObjects.DataObject3.IID));
final ImmutableMap<InstanceIdentifier<?>, Writer<?>> mappedWriters =
flatWriterRegistryBuilder.getMappedHandlers();