import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.flow.update.UpdatedFlowBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortMod;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.port.mod.port.PortBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.UpdatedGroupBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeContextRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundlePortModCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundlePortModCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.experimenter.input.experimenter.data.of.choice.BundleAddMessageBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.UpdatePortInputBuilder;
/**
* Converter for BundleAddMessage messages (ONF approved extension #230).
if (clazz.equals(BundleAddFlowCase.class)) {
flowModInputs = converterExecutor.convert(new AddFlowInputBuilder((Flow)messageCase).build(), data);
} else if (clazz.equals(BundleUpdateFlowCase.class)) {
- flowModInputs = converterExecutor.convert(new UpdateFlowInputBuilder((BundleUpdateFlowCase)messageCase).build(), data);
+ flowModInputs = converterExecutor.convert(new UpdatedFlowBuilder((Flow)messageCase).build(), data);
} else if (clazz.equals(BundleRemoveFlowCase.class)) {
flowModInputs = converterExecutor.convert(new RemoveFlowInputBuilder((Flow)messageCase).build(), data);
}
if (flowModInputs.isPresent()) {
- return new BundleFlowModCaseBuilder(flowModInputs.get().get(0).build()).build();
+ if (flowModInputs.get().size() == 1) {
+ return new BundleFlowModCaseBuilder(flowModInputs.get().get(0).build()).build();
+ } else {
+ throw new ConversionException("BundleFlowCase conversion unsuccessful - not able to convert to multiple flows.");
+ }
} else {
throw new ConversionException("BundleFlowCase conversion unsuccessful.");
}
if (clazz.equals(BundleAddGroupCase.class)) {
groupModInput = converterExecutor.convert(new AddGroupInputBuilder((Group)messageCase).build(), data);
} else if (clazz.equals(BundleUpdateGroupCase.class)) {
- groupModInput = converterExecutor.convert(new UpdateGroupInputBuilder((BundleUpdateGroupCase)messageCase).build(), data);
+ groupModInput = converterExecutor.convert(new UpdatedGroupBuilder((Group)messageCase).build(), data);
} else if (clazz.equals(BundleRemoveGroupCase.class)) {
groupModInput = converterExecutor.convert(new RemoveGroupInputBuilder((Group)messageCase).build(), data);
}
Optional<PortModInput> portModInput = Optional.empty();
final Class clazz = messageCase.getImplementedInterface();
if (clazz.equals(BundleUpdatePortCase.class)) {
- portModInput = converterExecutor.convert(new UpdatePortInputBuilder((BundleUpdatePortCase)messageCase).build(), data);
+ portModInput = converterExecutor.convert(new PortBuilder(((PortMod)messageCase).getPort().getPort().get(0)).build(), data);
}
if (portModInput.isPresent()) {
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundleProperty;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundlePropertyBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.BundlePropertyExperimenterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.bundle.property.experimenter.BundlePropertyExperimenterData;
/**
* Abstract class for common Converter util methods.
*/
-public abstract class ConverterTestUtils {
+public abstract class BundleTestUtils {
- public static BundleProperty createExperimenterProperty() {
- final BundlePropertyBuilder propertyBuilder = new BundlePropertyBuilder();
- propertyBuilder.setType(BundlePropertyType.ONFETBPTEXPERIMENTER);
- propertyBuilder.setBundlePropertyEntry(new BundlePropertyExperimenterBuilder()
- .setExperimenter(new ExperimenterId(1L))
- .setExpType(1L)
- .setBundlePropertyExperimenterData(null)
- .build());
- return propertyBuilder.build();
+ public static BundleProperty createExperimenterProperty(final BundlePropertyExperimenterData data) {
+ return new BundlePropertyBuilder()
+ .setType(BundlePropertyType.ONFETBPTEXPERIMENTER)
+ .setBundlePropertyEntry(new BundlePropertyExperimenterBuilder()
+ .setExperimenter(new ExperimenterId(1L))
+ .setExpType(2L)
+ .setBundlePropertyExperimenterData(data)
+ .build())
+ .build();
}
}
private static final Splitter HEXSTRING_SPLITTER = Splitter.onPattern("\\s+").omitEmptyStrings();
private static final byte[] XID = new byte[] { 0x01, 0x02, 0x03, 0x04 };
- public static final Long DEFAULT_XID = 0x01020304L;
+ private static final Long DEFAULT_XID = 0x01020304L;
public static ByteBuf hexStringToByteBuf(final String hexSrc) {
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
package org.opendaylight.openflowplugin.extension.onf.converter;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
-import org.opendaylight.openflowplugin.extension.onf.ConverterTestUtils;
+import org.mockito.Mockito;
+import org.opendaylight.openflowplugin.extension.onf.BundleTestUtils;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortFeatures;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortNumberUni;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.port.mod.PortBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleAddFlowCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.BundleInnerMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleAddFlowCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleAddGroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleRemoveFlowCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleRemoveGroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleUpdateFlowCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleUpdateGroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleUpdatePortCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundleFlowModCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundleGroupModCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundlePortModCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundleProperty;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.BundlePropertyExperimenter;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.bundle.property.experimenter.BundlePropertyExperimenterData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.experimenter.input.experimenter.data.of.choice.BundleAddMessage;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class BundleAddMessageConverterTest {
private final BundleAddMessageConverter converter = new BundleAddMessageConverter();
+ private static final NodeRef NODE_REF = new NodeRef(InstanceIdentifier.create(Nodes.class)
+ .child(Node.class, new NodeKey(new NodeId("openflow:1"))));
+ private static final GroupId GROUP_ID = new GroupId(1L);
@Test
public void testGetExperimenterId() {
@Test
public void testConvertWithoutProperty() throws Exception {
- final boolean withProperty = false;
- final org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessage
- original = createMessage(withProperty);
- final BundleAddMessage converted = converter.convert(original);
- testConvert(original, converted, withProperty);
+ testConvert(false);
}
@Test
public void testConvertWithProperty() throws Exception {
- final boolean withProperty = true;
- final org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessage
- original = createMessage(withProperty);
- final BundleAddMessage converted = converter.convert(original);
- testConvert(original, converted, withProperty);
+ testConvert(true);
}
- private void testConvert(final org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessage original,
- final BundleAddMessage converted, final boolean withProperty) {
+ @Test
+ public void testConvertAddFlowCase() throws Exception {
+ testConvert(new BundleAddFlowCaseBuilder().setNode(NODE_REF).build(), BundleFlowModCase.class);
+ }
+
+ @Test
+ public void testConvertUpdateFlowCase() throws Exception {
+ testConvert(new BundleUpdateFlowCaseBuilder().setNode(NODE_REF).build(), BundleFlowModCase.class);
+ }
+
+ @Test
+ public void testConvertRemoveFlowCase() throws Exception {
+ testConvert(new BundleRemoveFlowCaseBuilder().setNode(NODE_REF).build(), BundleFlowModCase.class);
+ }
+
+ @Test
+ public void testConvertAddGroupCase() throws Exception {
+ testConvert(new BundleAddGroupCaseBuilder().setNode(NODE_REF).setGroupId(GROUP_ID).build(), BundleGroupModCase.class);
+ }
+
+ @Test
+ public void testConvertUpdateGroupCase() throws Exception {
+ testConvert(new BundleUpdateGroupCaseBuilder().setNode(NODE_REF).setGroupId(GROUP_ID).build(), BundleGroupModCase.class);
+ }
+
+ @Test
+ public void testConvertRemoveGroupCase() throws Exception {
+ testConvert(new BundleRemoveGroupCaseBuilder().setNode(NODE_REF).setGroupId(GROUP_ID).build(), BundleGroupModCase.class);
+ }
+
+ @Test
+ public void testConvertUpdatePortCase() throws Exception {
+ testConvert(new BundleUpdatePortCaseBuilder()
+ .setNode(NODE_REF)
+ .setPort(new PortBuilder()
+ .setPort(Collections.singletonList(new org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.port.mod.port.PortBuilder()
+ .setConfiguration(Mockito.mock(PortConfig.class))
+ .setAdvertisedFeatures(Mockito.mock(PortFeatures.class))
+ .setPortNumber(Mockito.mock(PortNumberUni.class))
+ .setHardwareAddress(Mockito.mock(MacAddress.class))
+ .build()))
+ .build())
+ .build(), BundlePortModCase.class);
+ }
+
+ private void testConvert(final BundleInnerMessage message, final Class clazz) throws Exception {
+ testConvert(message, clazz, false);
+ }
+
+ private void testConvert(final boolean withProperty) throws Exception {
+ final BundleInnerMessage message = new BundleAddFlowCaseBuilder().setNode(NODE_REF).build();
+ testConvert(message, BundleFlowModCase.class, withProperty);
+ }
+
+ private void testConvert(final BundleInnerMessage message, Class clazz, final boolean withProperty) throws Exception {
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessage
+ original = createMessage(withProperty, message);
+ final BundleAddMessage converted = converter.convert(original);
Assert.assertEquals("Wrong BundleId", new BundleId(original.getBundleId().getValue()), converted.getBundleId());
Assert.assertEquals("Wrong flags", new BundleFlags(original.getFlags().isAtomic(), original.getFlags().isOrdered()), converted.getFlags());
- Assert.assertEquals("Wrong inner message conversion", BundleFlowModCase.class, converted.getBundleInnerMessage().getImplementedInterface());
+ Assert.assertEquals("Wrong inner message conversion", clazz, converted.getBundleInnerMessage().getImplementedInterface());
if (withProperty) {
final BundlePropertyExperimenter originalProperty = (BundlePropertyExperimenter) original.getBundleProperty().get(0).getBundlePropertyEntry();
final BundlePropertyExperimenter convertedProperty = ((BundlePropertyExperimenter) converted.getBundleProperty().get(0).getBundlePropertyEntry());
}
private static org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessage
- createMessage(final boolean withProperty) {
+ createMessage(final boolean withProperty, final BundleInnerMessage innerMessage) {
final org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessageBuilder builder
= new org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessageBuilder();
builder.setBundleId(new BundleId(1L));
builder.setFlags(new BundleFlags(true, false));
List<BundleProperty> properties = new ArrayList<>();
if (withProperty) {
- properties.add(ConverterTestUtils.createExperimenterProperty());
+ properties.add(BundleTestUtils.createExperimenterProperty(Mockito.mock(BundlePropertyExperimenterData.class)));
}
builder.setBundleProperty(properties);
- builder.setBundleInnerMessage(createaddFlowCase());
+ builder.setBundleInnerMessage(innerMessage);
return builder.build();
}
- private static BundleAddFlowCase createaddFlowCase() {
- return new BundleAddFlowCaseBuilder()
- .setNode(new NodeRef(InstanceIdentifier.create(Nodes.class)
- .child(Node.class, new NodeKey(new NodeId("openflow:1")))))
- .build();
- }
-
}
\ No newline at end of file
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
-import org.opendaylight.openflowplugin.extension.onf.ConverterTestUtils;
+import org.mockito.Mockito;
+import org.opendaylight.openflowplugin.extension.onf.BundleTestUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleControlType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundlePropertyType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundleProperty;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundlePropertyBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.BundlePropertyExperimenter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.BundlePropertyExperimenterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.bundle.property.experimenter.BundlePropertyExperimenterData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.experimenter.input.experimenter.data.of.choice.BundleControl;
/**
@Test
public void testConvertWithProperty() {
- final boolean withProperty = true;
- final org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleControl original
- = createMessage(withProperty);
- final BundleControl converted = converter.convert(original);
- testConvert(original, converted, withProperty);
+ testConvert(true);
}
@Test
public void testConvertWithoutProperty() {
- final boolean withProperty = false;
+ testConvert(false);
+ }
+
+ private void testConvert(final boolean withProperty) {
final org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleControl original
= createMessage(withProperty);
final BundleControl converted = converter.convert(original);
builder.setFlags(new BundleFlags(true, false));
List<BundleProperty> properties = new ArrayList<>();
if (withProperty) {
- properties.add(ConverterTestUtils.createExperimenterProperty());
+ properties.add(BundleTestUtils.createExperimenterProperty(Mockito.mock(BundlePropertyExperimenterData.class)));
}
builder.setBundleProperty(properties);
return builder.build();
}
-
-
}
@Test
public void testDeserializeBase() {
- ByteBuf buffer = ByteBufUtils.buildBuf("ff ff 08 fc 4f 4e 46 00");
+ ByteBuf buffer = ByteBufUtils.buildBuf("ff ff 08 fc 4f 4e 46 00 00 00");
ErrorMessage builtByFactory = factory.deserialize(buffer);
Assert.assertEquals("Wrong type", EncodeConstants.EXPERIMENTER_VALUE, builtByFactory.getType().intValue());
Assert.assertEquals("Wrong type string", "EXPERIMENTER", builtByFactory.getTypeString());
Assert.assertEquals("Wrong experimenter ID", EncodeConstants.ONF_EXPERIMENTER_ID,
builtByFactory.getAugmentation(ExperimenterIdError.class).getExperimenter().getValue().intValue());
- Assert.assertNull("Data is not null", builtByFactory.getData());
+ Assert.assertNotNull("Data is null", builtByFactory.getData());
}
@Test
builtByFactory = factory.deserialize(buffer);
Assert.assertEquals("Wrong code", 2315, builtByFactory.getCode().intValue());
Assert.assertEquals("Wrong code string", "ONFERR_ET_BUNDLE_IN_PROGRESS", builtByFactory.getCodeString());
+
+ buffer = ByteBufUtils.buildBuf("ff ff 09 0c 00 00 00 01");
+ builtByFactory = factory.deserialize(buffer);
+ Assert.assertEquals("Wrong code", 2316, builtByFactory.getCode().intValue());
+ Assert.assertEquals("Wrong code string", "UNKNOWN_CODE", builtByFactory.getCodeString());
}
}
\ No newline at end of file
import io.netty.buffer.ByteBuf;
import io.netty.buffer.UnpooledByteBufAllocator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
import org.junit.Assert;
import org.junit.Test;
-import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortConfig;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeatures;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
+import org.mockito.Mock;
+import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundlePropertyType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundlePortModCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundlePortModCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundleProperty;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundlePropertyBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.BundlePropertyExperimenterBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.bundle.property.experimenter.BundlePropertyExperimenterData;
/**
* Test for {@link org.opendaylight.openflowplugin.extension.onf.serializer.AbstractBundleMessageFactory}
* and util methods.
*/
-public class AbstractBundleMessageFactoryTest {
+public abstract class AbstractBundleMessageFactoryTest {
+
+ @Mock
+ protected SerializerRegistry registry;
+ @Mock
+ protected OFSerializer<BundlePropertyExperimenterData> propertySerializer;
+ @Mock
+ protected BundlePropertyExperimenterData propertyExperimenterData;
@Test
- public void writeBundleFlags() throws Exception {
+ public void writeBundleFlags() {
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
AbstractBundleMessageFactory.writeBundleFlags(new BundleFlags(true, true), out);
Assert.assertEquals("Wrong flags", 3, out.readUnsignedShort());
}
- public static List<BundleProperty> createListWithBundleExperimenterProperty(BundlePropertyExperimenterData data) {
- BundlePropertyBuilder propertyBuilder = new BundlePropertyBuilder();
- propertyBuilder.setType(BundlePropertyType.ONFETBPTEXPERIMENTER);
- BundlePropertyExperimenterBuilder experimenterPropertyBuilder = new BundlePropertyExperimenterBuilder();
- experimenterPropertyBuilder.setExperimenter(new ExperimenterId(1L));
- experimenterPropertyBuilder.setExpType(2L);
-
- experimenterPropertyBuilder.setBundlePropertyExperimenterData(data);
- propertyBuilder.setBundlePropertyEntry(experimenterPropertyBuilder.build());
- return new ArrayList<>(Collections.singleton(propertyBuilder.build()));
- }
-
- public static BundlePropertyExperimenterData createBundleExperimenterPropertyData() {
- return () -> null;
- }
-
- public static BundlePortModCase createBundlePortModCase() {
- BundlePortModCaseBuilder caseBuilder = new BundlePortModCaseBuilder();
- caseBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);
- caseBuilder.setXid(3L);
- caseBuilder.setPortNo(new PortNumber(9L));
- caseBuilder.setHwAddress(new MacAddress("08:00:27:00:B0:EB"));
- caseBuilder.setConfig(new PortConfig(true, false, true, false));
- caseBuilder.setMask(new PortConfig(false, true, false, true));
- caseBuilder.setAdvertise(new PortFeatures(true, false, false, false,
- false, false, false, true,
- false, false, false, false,
- false, false, false, false));
- return caseBuilder.build();
- }
}
\ No newline at end of file
import io.netty.buffer.ByteBuf;
import io.netty.buffer.UnpooledByteBufAllocator;
+import java.util.ArrayList;
+import java.util.Collections;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
-import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistryInjector;
-import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortMod;
+import org.opendaylight.openflowplugin.extension.onf.BundleTestUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.BundleInnerMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.bundle.property.experimenter.BundlePropertyExperimenterData;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundleFlowModCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundleGroupModCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.add.message.grouping.bundle.inner.message.BundlePortModCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.experimenter.input.experimenter.data.of.choice.BundleAddMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.experimenter.input.experimenter.data.of.choice.BundleAddMessageBuilder;
* Test for {@link org.opendaylight.openflowplugin.extension.onf.serializer.BundleAddMessageFactory}.
*/
@RunWith(MockitoJUnitRunner.class)
-public class BundleAddMessageFactoryTest {
+public class BundleAddMessageFactoryTest extends AbstractBundleMessageFactoryTest {
private final OFSerializer<BundleAddMessage> factory = new BundleAddMessageFactory();
@Mock
- SerializerRegistry registry;
- @Mock
- OFSerializer<PortMod> portModSerializer;
- @Mock
- OFSerializer<BundlePropertyExperimenterData> propertySerializer;
+ private OFSerializer caseSerializer;
@Test
public void testSerializeWithoutProperties() {
- BundleAddMessageBuilder builder = new BundleAddMessageBuilder();
- builder.setBundleId(new BundleId(1L));
- builder.setFlags(new BundleFlags(true, false));
+ testSerialize(false);
+ }
- BundleInnerMessage innerMessage = AbstractBundleMessageFactoryTest.createBundlePortModCase();
- builder.setBundleInnerMessage(innerMessage);
+ @Test
+ public void testSerializeWithExperimenterProperty() {
+ testSerialize(true);
+ }
- ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
- Mockito.when(registry.getSerializer(Matchers.any(MessageTypeKey.class))).thenReturn(portModSerializer);
- ((SerializerRegistryInjector) factory).injectSerializerRegistry(registry);
- factory.serialize(builder.build(), out);
+ @Test
+ public void testSerializeFlowModCase() {
+ testSerialize(new BundleFlowModCaseBuilder().build());
+ }
- Assert.assertEquals("Wrong bundle ID", 1L, out.readUnsignedInt());
- long padding = out.readUnsignedShort();
- Assert.assertEquals("Wrong flags", 1, out.readUnsignedShort());
- Mockito.verify(portModSerializer, Mockito.times(1)).serialize((PortMod)innerMessage, out);
+ @Test
+ public void testSerializeGroupModCase() {
+ testSerialize(new BundleGroupModCaseBuilder().build());
}
@Test
- public void testSerializeWithExperimenterProperty() {
- BundleAddMessageBuilder builder = new BundleAddMessageBuilder();
- builder.setBundleId(new BundleId(2L));
+ public void testSerializePortModCase() {
+ testSerialize(new BundlePortModCaseBuilder().build());
+ }
+
+ private void testSerialize(final BundleInnerMessage innerMessage) {
+ testSerialize(false, innerMessage);
+ }
+
+ private void testSerialize(final boolean withProperty) {
+ testSerialize(withProperty, new BundleFlowModCaseBuilder().build());
+ }
+
+ private void testSerialize(final boolean withProperty, final BundleInnerMessage innerMessage) {
+ final BundleAddMessageBuilder builder = new BundleAddMessageBuilder();
+ builder.setBundleId(new BundleId(1L));
builder.setFlags(new BundleFlags(true, false));
- BundleInnerMessage innerMessage = AbstractBundleMessageFactoryTest.createBundlePortModCase();
builder.setBundleInnerMessage(innerMessage);
- BundlePropertyExperimenterData data = AbstractBundleMessageFactoryTest.createBundleExperimenterPropertyData();
- builder.setBundleProperty(AbstractBundleMessageFactoryTest.createListWithBundleExperimenterProperty(data));
+ if (withProperty) {
+ builder.setBundleProperty(new ArrayList<>(Collections.singleton(
+ BundleTestUtils.createExperimenterProperty(propertyExperimenterData))));
+ Mockito.when(registry.getSerializer(Matchers.any()))
+ .thenReturn(caseSerializer)
+ .thenReturn(propertySerializer);
+ } else {
+ Mockito.when(registry.getSerializer(Matchers.any())).thenReturn(caseSerializer);
+ }
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
- Mockito.when(registry.getSerializer(Matchers.any(MessageTypeKey.class)))
- .thenReturn(portModSerializer)
- .thenReturn(propertySerializer);
((SerializerRegistryInjector) factory).injectSerializerRegistry(registry);
factory.serialize(builder.build(), out);
- Assert.assertEquals("Wrong bundle ID", 2L, out.readUnsignedInt());
+ Assert.assertEquals("Wrong bundle ID", 1L, out.readUnsignedInt());
long padding = out.readUnsignedShort();
Assert.assertEquals("Wrong flags", 1, out.readUnsignedShort());
- Mockito.verify(portModSerializer, Mockito.times(1)).serialize((PortMod)innerMessage, out);
- Mockito.verify(propertySerializer, Mockito.times(1)).serialize(data, out);
+ Mockito.verify(caseSerializer).serialize(innerMessage, out);
+
+ if (withProperty) {
+ Mockito.verify(propertySerializer).serialize(propertyExperimenterData, out);
+ }
}
}
\ No newline at end of file
import io.netty.buffer.ByteBuf;
import io.netty.buffer.UnpooledByteBufAllocator;
+import java.util.ArrayList;
+import java.util.Collections;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Matchers;
-import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
-import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistryInjector;
import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
+import org.opendaylight.openflowplugin.extension.onf.BundleTestUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleControlType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundlePropertyType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.property.grouping.bundle.property.entry.bundle.property.experimenter.BundlePropertyExperimenterData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.experimenter.input.experimenter.data.of.choice.BundleControl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.experimenter.input.experimenter.data.of.choice.BundleControlBuilder;
* Test for {@link org.opendaylight.openflowplugin.extension.onf.serializer.BundleControlFactory}.
*/
@RunWith(MockitoJUnitRunner.class)
-public class BundleControlFactoryTest {
+public class BundleControlFactoryTest extends AbstractBundleMessageFactoryTest {
private final OFSerializer<BundleControl> factory = new BundleControlFactory();
- @Mock
- SerializerRegistry registry;
- @Mock
- OFSerializer<BundlePropertyExperimenterData> serializer;
@Test
public void testSerializeWithoutProperties() {
- BundleControlBuilder builder = new BundleControlBuilder();
+ testSerialize(false);
+ }
+
+ @Test
+ public void testSerializeWithExperimenterProperty() {
+ testSerialize(true);
+ }
+
+ private void testSerialize(final boolean withProperty) {
+ final BundleControlBuilder builder = new BundleControlBuilder();
builder.setBundleId(new BundleId(1L));
builder.setType(BundleControlType.ONFBCTOPENREQUEST);
builder.setFlags(new BundleFlags(true, true));
+ if (withProperty) {
+ builder.setBundleProperty((new ArrayList<>(Collections.singleton(
+ BundleTestUtils.createExperimenterProperty(propertyExperimenterData)))));
+ Mockito.when(registry.getSerializer(Matchers.any(MessageTypeKey.class))).thenReturn(propertySerializer);
+ ((SerializerRegistryInjector) factory).injectSerializerRegistry(registry);
+ }
+
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
factory.serialize(builder.build(), out);
Assert.assertEquals("Wrong bundle ID", 1L, out.readUnsignedInt());
Assert.assertEquals("Wrong type", BundleControlType.ONFBCTOPENREQUEST.getIntValue(), out.readUnsignedShort());
Assert.assertEquals("Wrong flags", 3, out.readUnsignedShort());
- Assert.assertTrue("Unexpected data", out.readableBytes() == 0);
- }
-
- @Test
- public void testSerializeWithExperimenterProperty() {
- BundleControlBuilder builder = new BundleControlBuilder();
- builder.setBundleId(new BundleId(3L));
- builder.setType(BundleControlType.ONFBCTCOMMITREQUEST);
- builder.setFlags(new BundleFlags(false, true));
-
- BundlePropertyExperimenterData data = AbstractBundleMessageFactoryTest.createBundleExperimenterPropertyData();
- builder.setBundleProperty(AbstractBundleMessageFactoryTest.createListWithBundleExperimenterProperty(data));
-
- ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
- Mockito.when(registry.getSerializer(Matchers.any(MessageTypeKey.class))).thenReturn(serializer);
- ((SerializerRegistryInjector) factory).injectSerializerRegistry(registry);
- factory.serialize(builder.build(), out);
+ if (withProperty) {
+ Assert.assertEquals("Wrong property type", BundlePropertyType.ONFETBPTEXPERIMENTER.getIntValue(), out.readUnsignedShort());
+ int length = out.readUnsignedShort();
+ Assert.assertEquals("Wrong experimenter ID", 1, out.readUnsignedInt());
+ Assert.assertEquals("Wrong experimenter type", 2, out.readUnsignedInt());
+ Mockito.verify(propertySerializer, Mockito.times(1)).serialize(propertyExperimenterData, out);
- Assert.assertEquals("Wrong bundle ID", 3L, out.readUnsignedInt());
- Assert.assertEquals("Wrong type", BundleControlType.ONFBCTCOMMITREQUEST.getIntValue(), out.readUnsignedShort());
- Assert.assertEquals("Wrong flags", 2, out.readUnsignedShort());
- Assert.assertEquals("Wrong property type", BundlePropertyType.ONFETBPTEXPERIMENTER.getIntValue(), out.readUnsignedShort());
- int length = out.readUnsignedShort();
- Assert.assertEquals("Wrong experimenter ID", 1, out.readUnsignedInt());
- Assert.assertEquals("Wrong experimenter type", 2, out.readUnsignedInt());
- Mockito.verify(serializer, Mockito.times(1)).serialize(data, out);
+ } else {
+ Assert.assertTrue("Unexpected data", out.readableBytes() == 0);
+ }
}
}
\ No newline at end of file
package org.opendaylight.openflowplugin.extension.onf.service;
+import com.google.common.util.concurrent.SettableFuture;
+import java.util.ArrayList;
+import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.message.service.rev151020.SalExperimenterMessageService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.message.service.rev151020.SendExperimenterInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessagesInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundleInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.SalBundleService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.Messages;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.add.bundle.messages.input.MessagesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleAddFlowCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleAddGroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleRemoveFlowCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleRemoveGroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleUpdateFlowCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleUpdateGroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.bundle.inner.message.grouping.bundle.inner.message.BundleUpdatePortCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleAddMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.send.experimenter.input.experimenter.message.of.choice.BundleControlBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleControlType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.bundle.common.grouping.BundleProperty;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
/**
* Test for {@link org.opendaylight.openflowplugin.extension.onf.service.SalBundleServiceImpl}.
@RunWith(MockitoJUnitRunner.class)
public class SalBundleServiceImplTest {
+ private static final NodeRef NODE_REF = new NodeRef(InstanceIdentifier.create(Nodes.class)
+ .child(Node.class, new NodeKey(new NodeId("openflow:1"))));
+ private static final BundleId BUNDLE_ID = new BundleId(1L);
+ private static final BundleFlags BUNDLE_FLAGS = new BundleFlags(true, false);
+
private SalBundleService service;
@Mock
private SalExperimenterMessageService experimenterMessageService;
+ @Mock
+ private List<BundleProperty> properties;
@Before
public void setUp() {
@Test
public void testControlBundle() {
- final ControlBundleInput input = new ControlBundleInputBuilder().build();
- final SendExperimenterInputBuilder experimenterInput = new SendExperimenterInputBuilder();
- experimenterInput.setExperimenterMessageOfChoice(new BundleControlBuilder(input).build());
+ final ControlBundleInput input = new ControlBundleInputBuilder()
+ .setNode(NODE_REF)
+ .setBundleId(BUNDLE_ID)
+ .setFlags(BUNDLE_FLAGS)
+ .setType(BundleControlType.ONFBCTOPENREQUEST)
+ .setBundleProperty(properties)
+ .build();
+ final SendExperimenterInputBuilder experimenterBuilder = new SendExperimenterInputBuilder();
+ experimenterBuilder.setNode(NODE_REF);
+ experimenterBuilder.setExperimenterMessageOfChoice(new BundleControlBuilder(input).build());
service.controlBundle(input);
- Mockito.verify(experimenterMessageService).sendExperimenter(experimenterInput.build());
+ Mockito.verify(experimenterMessageService).sendExperimenter(experimenterBuilder.build());
}
@Test
- public void testAddBundleMessages() {
- // TODO
+ public void testAddBundleMessages() throws Exception {
+ final List<Messages> innerMessages = createMessages();
+ final AddBundleMessagesInput input = new AddBundleMessagesInputBuilder()
+ .setNode(NODE_REF)
+ .setBundleId(BUNDLE_ID)
+ .setFlags(BUNDLE_FLAGS)
+ .setBundleProperty(properties)
+ .setMessages(innerMessages)
+ .build();
+ final BundleAddMessageBuilder addMessageBuilder = new BundleAddMessageBuilder()
+ .setBundleId(BUNDLE_ID)
+ .setFlags(BUNDLE_FLAGS)
+ .setBundleProperty(properties);
+ final SendExperimenterInputBuilder experimenterBuilder = new SendExperimenterInputBuilder()
+ .setNode(NODE_REF);
+ Mockito.when(experimenterMessageService.sendExperimenter(Matchers.any())).thenReturn(SettableFuture.create());
+ service.addBundleMessages(input);
+ for (Messages msg : innerMessages) {
+ Mockito.verify(experimenterMessageService).sendExperimenter(experimenterBuilder.setExperimenterMessageOfChoice(
+ addMessageBuilder.setBundleInnerMessage(msg.getBundleInnerMessage()).build()
+ ).build());
+ }
+ }
+
+ private static List<Messages> createMessages() {
+ List<Messages> messages = new ArrayList<>();
+ messages.add(new MessagesBuilder().setBundleInnerMessage(new BundleAddFlowCaseBuilder().build()).build());
+ messages.add(new MessagesBuilder().setBundleInnerMessage(new BundleUpdateFlowCaseBuilder().build()).build());
+ messages.add(new MessagesBuilder().setBundleInnerMessage(new BundleRemoveFlowCaseBuilder().build()).build());
+ messages.add(new MessagesBuilder().setBundleInnerMessage(new BundleAddGroupCaseBuilder().build()).build());
+ messages.add(new MessagesBuilder().setBundleInnerMessage(new BundleUpdateGroupCaseBuilder().build()).build());
+ messages.add(new MessagesBuilder().setBundleInnerMessage(new BundleRemoveGroupCaseBuilder().build()).build());
+ messages.add(new MessagesBuilder().setBundleInnerMessage(new BundleUpdatePortCaseBuilder().build()).build());
+ return messages;
}
}
\ No newline at end of file