diff options
Diffstat (limited to 'infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/read/ReflexiveListReaderCustomizerTest.java')
-rw-r--r-- | infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/read/ReflexiveListReaderCustomizerTest.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/read/ReflexiveListReaderCustomizerTest.java b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/read/ReflexiveListReaderCustomizerTest.java new file mode 100644 index 000000000..fe12ff699 --- /dev/null +++ b/infra/translate-utils/src/test/java/io/fd/honeycomb/translate/util/read/ReflexiveListReaderCustomizerTest.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2017 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.read; + +import io.fd.honeycomb.translate.read.ReadContext; +import io.fd.honeycomb.translate.read.ReadFailedException; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.opendaylight.yangtools.concepts.Builder; +import org.opendaylight.yangtools.yang.binding.*; + +import java.util.Arrays; +import java.util.List; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.hasSize; + +public class ReflexiveListReaderCustomizerTest { + + static class TestingListObject implements DataObject, Identifiable<TestingListObject.TestingListKey> { + + private final TestingListKey key; + + TestingListObject(final TestingListKey key) { + this.key = key; + } + + @Override + public Class<? extends DataContainer> getImplementedInterface() { + return DataObject.class; + } + + @Override + public TestingListKey getKey() { + return key; + } + + static class TestingListKey implements Identifier<TestingListObject> { + + private final String value; + + TestingListKey(final String value) { + this.value = value; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + TestingListKey that = (TestingListKey) o; + + return value.equals(that.value); + } + + @Override + public int hashCode() { + return value.hashCode(); + } + } + } + + static class TestingListObjectBuilder implements Builder<TestingListObject> { + + private final TestingListObject.TestingListKey key; + + TestingListObjectBuilder(final TestingListObject.TestingListKey key) { + this.key = key; + } + + @Override + public TestingListObject build() { + return new TestingListObject(key); + } + } + + @Mock + private ReadContext readContext; + + @Before + public void init() { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testStaticKeys() throws ReadFailedException { + final TestingListObject.TestingListKey keyOne = new TestingListObject.TestingListKey("1"); + final TestingListObject.TestingListKey keyTwo = new TestingListObject.TestingListKey("2"); + final List<TestingListObject.TestingListKey> staticKeys = Arrays.asList(keyOne, keyTwo); + + final ReflexiveListReaderCustomizer<TestingListObject, TestingListObject.TestingListKey, TestingListObjectBuilder> customizer + = new ReflexiveListReaderCustomizer<>(TestingListObject.class, TestingListObjectBuilder.class, staticKeys); + + final List<TestingListObject.TestingListKey> allIds = customizer.getAllIds(InstanceIdentifier.create(TestingListObject.class), readContext); + + assertThat(allIds, hasSize(2)); + assertThat(allIds, contains(keyOne, keyTwo)); + } +} |