* @return the extensionConverterRegistry - here extension converters can be registered in order to support
* vendor messages
*/
- public ExtensionConverterRegistrator getExtensionConverterRegistrator();
+ ExtensionConverterRegistrator getExtensionConverterRegistrator();
}
this.serializerRegistry = serializerRegistry;
}
- protected static void writeBundleFlags(final BundleFlags bundleFlags, final ByteBuf outBuffer) {
+ static void writeBundleFlags(final BundleFlags bundleFlags, final ByteBuf outBuffer) {
short flagsBitMap = fillBitMask(bundleFlags.isAtomic(), bundleFlags.isOrdered());
outBuffer.writeShort(flagsBitMap);
}
- protected void writeBundleProperties(final List<BundleProperty> properties, final ByteBuf outBuffer) {
+ void writeBundleProperties(final List<BundleProperty> properties, final ByteBuf outBuffer) {
for (BundleProperty property : properties) {
BundlePropertyType type = property.getType();
if (type != null && type.equals(BundlePropertyType.ONFETBPTEXPERIMENTER)) {
writeBundleExperimenterProperty((BundlePropertyExperimenter)property.getBundlePropertyEntry(), outBuffer);
outBuffer.setShort(lengthIndex, outBuffer.writerIndex() - startIndex);
} else {
- LOG.warn("Trying to serialize unknown bundle property (type: {}), skipping", type.getIntValue());
+ LOG.warn("Trying to serialize unknown bundle property (type: {}), skipping",
+ type != null ? type.getIntValue() : 0);
}
}
}
- protected void writeBundleExperimenterProperty(final BundlePropertyExperimenter property, final ByteBuf outBuffer) {
+ private void writeBundleExperimenterProperty(final BundlePropertyExperimenter property, final ByteBuf outBuffer) {
int experimenterId = property.getExperimenter().getValue().intValue();
int expType = property.getExpType().intValue();
outBuffer.writeInt(experimenterId);
--- /dev/null
+/*
+ * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.openflowplugin.extension.onf;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
+import org.opendaylight.openflowplugin.extension.api.ExtensionConverterRegistrator;
+import org.opendaylight.openflowplugin.extension.api.OpenFlowPluginExtensionRegistratorProvider;
+import org.opendaylight.openflowplugin.extension.api.TypeVersionKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.experimenter.types.rev151020.experimenter.core.message.ExperimenterMessageOfChoice;
+
+@RunWith(MockitoJUnitRunner.class)
+public class OnfExtensionProviderTest {
+
+ @Mock
+ private SwitchConnectionProvider switchConnectionProvider;
+ @Mock
+ private OpenFlowPluginExtensionRegistratorProvider openFlowPluginExtensionRegistratorProvider;
+ @Mock
+ private ExtensionConverterRegistrator extensionConverterRegistrator;
+
+ private OnfExtensionProvider onfExtensionProvider;
+
+ @Before
+ public void setUp() throws Exception {
+ Mockito
+ .when(openFlowPluginExtensionRegistratorProvider.getExtensionConverterRegistrator())
+ .thenReturn(extensionConverterRegistrator);
+
+ onfExtensionProvider =
+ new OnfExtensionProvider(switchConnectionProvider, openFlowPluginExtensionRegistratorProvider);
+ }
+
+ @Test
+ public void init() throws Exception {
+ onfExtensionProvider.init();
+ Mockito.verify(switchConnectionProvider, Mockito.times(2))
+ .registerExperimenterMessageSerializer(Mockito.any(), Mockito.any());
+ Mockito.verify(switchConnectionProvider)
+ .registerExperimenterMessageDeserializer(Mockito.any(), Mockito.any());
+ Mockito.verify(switchConnectionProvider)
+ .registerErrorDeserializer(Mockito.any(), Mockito.any());
+ Mockito.verify(extensionConverterRegistrator, Mockito.times(2))
+ .registerMessageConvertor(Mockito.<TypeVersionKey<? extends ExperimenterMessageOfChoice>>any(),
+ Mockito.any());
+ }
+
+}
\ No newline at end of file
import java.util.Collections;
import java.util.List;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
.child(Node.class, new NodeKey(new NodeId("openflow:1"))));
private static final GroupId GROUP_ID = new GroupId(1L);
+ @Before
+ public void setUp() throws Exception {
+ converter.setNode(NODE_REF);
+ }
+
@Test
public void testGetExperimenterId() {
Assert.assertEquals("Wrong ExperimenterId.", new ExperimenterId(0x4F4E4600L), converter.getExperimenterId());
}
@Test
- @Ignore
public void testConvertWithoutProperty() throws Exception {
testConvert(false);
}
@Test
- @Ignore
public void testConvertWithProperty() throws Exception {
testConvert(true);
}
@Test
- @Ignore
public void testConvertAddFlowCase() throws Exception {
testConvert(new BundleAddFlowCaseBuilder().setAddFlowCaseData(new AddFlowCaseDataBuilder().build()).build(), BundleFlowModCase.class);
}
@Test
- @Ignore
public void testConvertUpdateFlowCase() throws Exception {
testConvert(new BundleUpdateFlowCaseBuilder().setUpdateFlowCaseData(new UpdateFlowCaseDataBuilder().build()).build(), BundleFlowModCase.class);
}
@Test
- @Ignore
public void testConvertRemoveFlowCase() throws Exception {
testConvert(new BundleRemoveFlowCaseBuilder().setRemoveFlowCaseData(new RemoveFlowCaseDataBuilder().build()).build(), BundleFlowModCase.class);
}
@Test
- @Ignore
public void testConvertAddGroupCase() throws Exception {
testConvert(new BundleAddGroupCaseBuilder().setAddGroupCaseData(new AddGroupCaseDataBuilder().setGroupId(GROUP_ID).build()).build(), BundleGroupModCase.class);
}
@Test
- @Ignore
public void testConvertUpdateGroupCase() throws Exception {
testConvert(new BundleUpdateGroupCaseBuilder().setUpdateGroupCaseData(new UpdateGroupCaseDataBuilder().setGroupId(GROUP_ID).build()).build(), BundleGroupModCase.class);
}
@Test
- @Ignore
public void testConvertRemoveGroupCase() throws Exception {
testConvert(new BundleRemoveGroupCaseBuilder().setRemoveGroupCaseData(new RemoveGroupCaseDataBuilder().setGroupId(GROUP_ID).build()).build(), BundleGroupModCase.class);
}
@Test
- @Ignore
public void testConvertUpdatePortCase() throws Exception {
testConvert(new BundleUpdatePortCaseBuilder()
.setUpdatePortCaseData(new UpdatePortCaseDataBuilder()
}
private void testConvert(final boolean withProperty) throws Exception {
- final BundleInnerMessage message = new BundleAddFlowCaseBuilder().build();
+ final BundleInnerMessage message = new BundleAddFlowCaseBuilder().setAddFlowCaseData(new AddFlowCaseDataBuilder().build()).build();
testConvert(message, BundleFlowModCase.class, withProperty);
}
private final OFDeserializer<BundleControlOnf> factory = new BundleControlFactory();
@Mock
- DeserializerRegistry registry;
+ private DeserializerRegistry registry;
@Mock
- OFDeserializer<BundlePropertyExperimenterData> experimenterPropertyDeserializer;
+ private OFDeserializer<BundlePropertyExperimenterData> experimenterPropertyDeserializer;
@Test
public void testDeserializeWithoutProperties() {
@Mock
protected SerializerRegistry registry;
@Mock
- protected OFSerializer<BundlePropertyExperimenterData> propertySerializer;
+ OFSerializer<BundlePropertyExperimenterData> propertySerializer;
@Mock
- protected BundlePropertyExperimenterData propertyExperimenterData;
+ BundlePropertyExperimenterData propertyExperimenterData;
@Test
public void writeBundleFlags() {
import java.util.ArrayList;
import java.util.Collections;
import org.junit.Assert;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Matchers;
private final OFSerializer<BundleAddMessageOnf> factory = new BundleAddMessageFactory();
@Mock
- private OFSerializer caseSerializer;
+ private OFSerializer<BundleInnerMessage> caseSerializer;
@Test
- @Ignore
public void testSerializeWithoutProperties() {
testSerialize(false);
}
@Test
- @Ignore
public void testSerializeWithExperimenterProperty() {
testSerialize(true);
}
@Test
- @Ignore
public void testSerializeFlowModCase() {
testSerialize(new BundleFlowModCaseBuilder().build());
}
@Test
- @Ignore
public void testSerializeGroupModCase() {
testSerialize(new BundleGroupModCaseBuilder().build());
}
@Test
- @Ignore
public void testSerializePortModCase() {
testSerialize(new BundlePortModCaseBuilder().build());
}
Mockito.when(registry.getSerializer(Matchers.any())).thenReturn(caseSerializer);
}
+ builder.setOnfAddMessageGroupingData(dataBuilder.build());
+
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
((SerializerRegistryInjector) factory).injectSerializerRegistry(registry);
factory.serialize(builder.build(), out);
Assert.assertEquals("Wrong bundle ID", 1L, out.readUnsignedInt());
long padding = out.readUnsignedShort();
Assert.assertEquals("Wrong flags", 1, out.readUnsignedShort());
- Mockito.verify(caseSerializer).serialize(innerMessage, out);
+ Mockito.verify(caseSerializer).serialize(Mockito.any(), Mockito.any());
if (withProperty) {
Mockito.verify(propertySerializer).serialize(propertyExperimenterData, out);
if (withProperty) {
dataBuilder.setBundleProperty((new ArrayList<>(Collections.singleton(
BundleTestUtils.createExperimenterProperty(propertyExperimenterData)))));
- Mockito.when(registry.getSerializer(Matchers.any(MessageTypeKey.class))).thenReturn(propertySerializer);
+ Mockito.when(registry.getSerializer(Matchers.any())).thenReturn(propertySerializer);
((SerializerRegistryInjector) factory).injectSerializerRegistry(registry);
}