/* * 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.vpp.test.read; import static org.junit.Assert.assertNotNull; import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.read.ReadContext; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.vpp.test.util.FutureProducer; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.jvpp.core.future.FutureJVppCore; /** * Generic test for classes implementing {@link ReaderCustomizer} interface. * * @param Specific DataObject derived type (Identifiable), that is handled by this customizer * @param Specific Builder for handled type (D) */ public abstract class ReaderCustomizerTest> implements FutureProducer { @Mock protected FutureJVppCore api; @Mock protected ReadContext ctx; @Mock protected MappingContext mappingContext; protected ModificationCache cache; protected final Class dataObjectClass; private ReaderCustomizer customizer; protected ReaderCustomizerTest(Class dataObjectClass) { this.dataObjectClass = dataObjectClass; } @Before public void setUpParent() throws Exception { MockitoAnnotations.initMocks(this); cache = new ModificationCache(); Mockito.doReturn(cache).when(ctx).getModificationCache(); Mockito.doReturn(mappingContext).when(ctx).getMappingContext(); setUp(); customizer = initCustomizer(); } /** * Optional setup for subclasses. Invoked before customizer is initialized. */ protected void setUp() throws Exception { } protected abstract ReaderCustomizer initCustomizer(); protected ReaderCustomizer getCustomizer() { return customizer; } @Test public void testGetBuilder() throws Exception { assertNotNull(customizer.getBuilder(InstanceIdentifier.create(dataObjectClass))); } // TODO HONEYCOMB-116: create generic testMerge() }