Fix checkstyle violations in openflowplugin extensions
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / action / ActionConvertorV10Test.java
index aabb6f720a9b0b2e7be6a065df7d27a2cb401673..4e52e384f50d6f1ae92722bcd14bf105b994ec76 100644 (file)
-/*\r
- * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-\r
-package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action;\r
-\r
-import java.math.BigInteger;\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.List;\r
-import java.util.Optional;\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.openflowplugin.api.OFConstants;\r
-import org.opendaylight.openflowplugin.extension.api.path.ActionPath;\r
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;\r
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;\r
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData;\r
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionResponseConvertorData;\r
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.flow.FlowConvertorUtil;\r
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpVersion;\r
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;\r
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;\r
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlDstActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlSrcActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwDstActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTosActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpDstActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpSrcActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanIdActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanPcpActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.StripVlanActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.dl.dst.action._case.SetDlDstActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.dl.src.action._case.SetDlSrcActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field._case.SetFieldBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.dst.action._case.SetNwDstActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.src.action._case.SetNwSrcActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.tos.action._case.SetNwTosActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.tp.dst.action._case.SetTpDstActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.tp.src.action._case.SetTpSrcActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.id.action._case.SetVlanIdActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.pcp.action._case.SetVlanPcpActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.strip.vlan.action._case.StripVlanActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.address.address.Ipv4Builder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCaseBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlDstCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlSrcCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwDstCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwSrcCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTosCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpDstCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpSrcCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanPcpCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanVidCase;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.output.action._case.OutputActionBuilder;\r
-\r
-/**\r
- * @author michal.polkorab\r
- *\r
- */\r
-public class ActionConvertorV10Test {\r
-    private ConvertorManager convertorManager;\r
-\r
-    @Before\r
-    public void setUp() {\r
-        convertorManager = ConvertorManagerFactory.createDefaultManager();\r
-    }\r
-\r
-    /**\r
-     * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.ActionConvertor#convert(java.util.List, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData)}}\r
-     */\r
-    @Test\r
-    public void testGetActions() {\r
-        List<Action> salActions = new ArrayList<>();\r
-        ActionBuilder actionBuilder = new ActionBuilder();\r
-        SetVlanPcpActionCaseBuilder vlanPcpCaseBuilder = new SetVlanPcpActionCaseBuilder();\r
-        SetVlanPcpActionBuilder pcpBuilder = new SetVlanPcpActionBuilder();\r
-        pcpBuilder.setVlanPcp(new VlanPcp((short) 7));\r
-        vlanPcpCaseBuilder.setSetVlanPcpAction(pcpBuilder.build());\r
-        actionBuilder.setAction(vlanPcpCaseBuilder.build());\r
-        actionBuilder.setOrder(0);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        StripVlanActionCaseBuilder stripCaseBuilder = new StripVlanActionCaseBuilder();\r
-        StripVlanActionBuilder stripBuilder = new StripVlanActionBuilder();\r
-        stripCaseBuilder.setStripVlanAction(stripBuilder.build());\r
-        actionBuilder.setAction(stripCaseBuilder.build());\r
-        actionBuilder.setOrder(1);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        SetDlDstActionCaseBuilder dlDstCaseBuilder = new SetDlDstActionCaseBuilder();\r
-        SetDlDstActionBuilder dlDstBuilder = new SetDlDstActionBuilder();\r
-        dlDstBuilder.setAddress(new MacAddress("00:00:00:00:00:06"));\r
-        dlDstCaseBuilder.setSetDlDstAction(dlDstBuilder.build());\r
-        actionBuilder.setAction(dlDstCaseBuilder.build());\r
-        actionBuilder.setOrder(2);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        SetDlSrcActionCaseBuilder dlSrcCaseBuilder = new SetDlSrcActionCaseBuilder();\r
-        SetDlSrcActionBuilder dlSrcBuilder = new SetDlSrcActionBuilder();\r
-        dlSrcBuilder.setAddress(new MacAddress("00:00:00:00:00:05"));\r
-        dlSrcCaseBuilder.setSetDlSrcAction(dlSrcBuilder.build());\r
-        actionBuilder.setAction(dlSrcCaseBuilder.build());\r
-        actionBuilder.setOrder(3);\r
-        salActions.add(actionBuilder.build());\r
-       \r
-        actionBuilder = new ActionBuilder();\r
-        SetNwSrcActionCaseBuilder nwSrcCaseBuilder = new SetNwSrcActionCaseBuilder();\r
-        SetNwSrcActionBuilder nwSrcBuilder = new SetNwSrcActionBuilder();\r
-        Ipv4Builder ipv4Builder = new Ipv4Builder();\r
-        /* Use prefix which is correct in canonical representation in test */\r
-        ipv4Builder.setIpv4Address(new Ipv4Prefix("10.0.0.0/24"));\r
-        nwSrcBuilder.setAddress(ipv4Builder.build());\r
-        nwSrcCaseBuilder.setSetNwSrcAction(nwSrcBuilder.build());\r
-        actionBuilder.setAction(nwSrcCaseBuilder.build());\r
-        actionBuilder.setOrder(4);\r
-        salActions.add(actionBuilder.build());\r
-        \r
-        actionBuilder = new ActionBuilder();\r
-        SetNwDstActionCaseBuilder nwDstCaseBuilder = new SetNwDstActionCaseBuilder();\r
-        SetNwDstActionBuilder nwDstBuilder = new SetNwDstActionBuilder();\r
-        ipv4Builder = new Ipv4Builder();\r
-        ipv4Builder.setIpv4Address(new Ipv4Prefix("10.0.0.2/32"));\r
-        nwDstBuilder.setAddress(ipv4Builder.build());\r
-        nwDstCaseBuilder.setSetNwDstAction(nwDstBuilder.build());\r
-        actionBuilder.setAction(nwDstCaseBuilder.build());\r
-        actionBuilder.setOrder(5);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        SetTpSrcActionCaseBuilder tpSrcCaseBuilder = new SetTpSrcActionCaseBuilder();\r
-        SetTpSrcActionBuilder tpSrcBuilder = new SetTpSrcActionBuilder();\r
-        tpSrcBuilder.setPort(new PortNumber(54));\r
-        tpSrcCaseBuilder.setSetTpSrcAction(tpSrcBuilder.build());\r
-        actionBuilder.setAction(tpSrcCaseBuilder.build());\r
-        actionBuilder.setOrder(6);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        SetTpDstActionCaseBuilder tpDstCaseBuilder = new SetTpDstActionCaseBuilder();\r
-        SetTpDstActionBuilder tpDstBuilder = new SetTpDstActionBuilder();\r
-        tpDstBuilder.setPort(new PortNumber(45));\r
-        tpDstCaseBuilder.setSetTpDstAction(tpDstBuilder.build());\r
-        actionBuilder.setAction(tpDstCaseBuilder.build());\r
-        actionBuilder.setOrder(7);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        SetNwTosActionCaseBuilder tosCaseBuilder = new SetNwTosActionCaseBuilder();\r
-        SetNwTosActionBuilder tosBuilder = new SetNwTosActionBuilder();\r
-        tosBuilder.setTos(18);\r
-        tosCaseBuilder.setSetNwTosAction(tosBuilder.build());\r
-        actionBuilder.setAction(tosCaseBuilder.build());\r
-        actionBuilder.setOrder(8);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        SetVlanIdActionCaseBuilder vlanIdCaseBuilder = new SetVlanIdActionCaseBuilder();\r
-        SetVlanIdActionBuilder vlanIdBuilder = new SetVlanIdActionBuilder();\r
-        vlanIdBuilder.setVlanId(new VlanId(22));\r
-        vlanIdCaseBuilder.setSetVlanIdAction(vlanIdBuilder.build());\r
-        actionBuilder.setAction(vlanIdCaseBuilder.build());\r
-        actionBuilder.setOrder(9);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        PopVlanActionCaseBuilder popVlanActionCaseBuilder = new PopVlanActionCaseBuilder();\r
-        actionBuilder.setAction(popVlanActionCaseBuilder.build());\r
-        actionBuilder.setOrder(10);\r
-        salActions.add(actionBuilder.build());\r
-\r
-        actionBuilder = new ActionBuilder();\r
-        SetFieldCaseBuilder setFieldCaseBuilder = new SetFieldCaseBuilder();\r
-        SetFieldBuilder setFieldBuilder = new SetFieldBuilder();\r
-        VlanMatchBuilder vlanMatchBuilder = new VlanMatchBuilder();\r
-        vlanMatchBuilder.setVlanId(new VlanIdBuilder().setVlanId(new VlanId(22)).build());\r
-        setFieldBuilder.setVlanMatch(vlanMatchBuilder.build());\r
-        setFieldCaseBuilder.setSetField(setFieldBuilder.build());\r
-        actionBuilder.setAction(setFieldCaseBuilder.build());\r
-        actionBuilder.setOrder(11);\r
-        salActions.add(actionBuilder.build());\r
-        \r
-        IpMatchBuilder ipMatchBld = new IpMatchBuilder().setIpProto(IpVersion.Ipv4);\r
-        MatchBuilder matchBld = new MatchBuilder().setIpMatch(ipMatchBld.build());\r
-        FlowBuilder flowBld = new FlowBuilder().setMatch(matchBld.build());\r
-        Flow flow = flowBld.build();\r
-\r
-        ActionConvertorData data = new ActionConvertorData(OFConstants.OFP_VERSION_1_0);\r
-        data.setDatapathId(new BigInteger("42"));\r
-        data.setIpProtocol(FlowConvertorUtil.getIpProtocolFromFlow(flow));\r
-\r
-        Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action>> actionsOptional =\r
-                convertorManager.convert(salActions, data);\r
-\r
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action> actions = actionsOptional.orElse(Collections.emptyList());\r
-        \r
-        Assert.assertEquals("Wrong number of actions", 12, actions.size());\r
-        \r
-        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action action = actions.get(0);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetVlanPcpCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetVlanPcpCase setVlanPcpCase = (SetVlanPcpCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong vlan pcp", 7, setVlanPcpCase.getSetVlanPcpAction().getVlanPcp().intValue());\r
-        \r
-        action = actions.get(1);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.StripVlanCase", action.getActionChoice().getImplementedInterface().getName());\r
-        \r
-        action = actions.get(2);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetDlDstCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetDlDstCase setDlDstCase = (SetDlDstCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong dl dst", "00:00:00:00:00:06", setDlDstCase.getSetDlDstAction().getDlDstAddress().getValue());\r
-        \r
-        action = actions.get(3);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetDlSrcCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetDlSrcCase setDlSrcCase = (SetDlSrcCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong dl src", "00:00:00:00:00:05", setDlSrcCase.getSetDlSrcAction().getDlSrcAddress().getValue());\r
-        \r
-        action = actions.get(4);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetNwSrcCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetNwSrcCase setNwSrcCase = (SetNwSrcCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong nw src", "10.0.0.0", setNwSrcCase.getSetNwSrcAction().getIpAddress().getValue());\r
-        \r
-        action = actions.get(5);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetNwDstCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetNwDstCase setNwDstCase = (SetNwDstCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong nw dst", "10.0.0.2", setNwDstCase.getSetNwDstAction().getIpAddress().getValue());\r
-        \r
-        action = actions.get(6);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetTpSrcCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetTpSrcCase setTpSrcCase = (SetTpSrcCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong tp src", 54, setTpSrcCase.getSetTpSrcAction().getPort().getValue().intValue());\r
-        \r
-        action = actions.get(7);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetTpDstCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetTpDstCase setTpDstCase = (SetTpDstCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong tp dst", 45, setTpDstCase.getSetTpDstAction().getPort().getValue().intValue());\r
-        \r
-        action = actions.get(8);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetNwTosCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetNwTosCase setNwTosCase = (SetNwTosCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong nw tos", 18, setNwTosCase.getSetNwTosAction().getNwTos().intValue());\r
-        \r
-        action = actions.get(9);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetVlanVidCase", action.getActionChoice().getImplementedInterface().getName());\r
-        SetVlanVidCase setVlanVidCase = (SetVlanVidCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong vlan id", 22, setVlanVidCase.getSetVlanVidAction().getVlanVid().intValue());\r
-\r
-        action = actions.get(10);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.StripVlanCase", action.getActionChoice().getImplementedInterface().getName());\r
-\r
-        action = actions.get(11);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".action.rev150203.action.grouping.action.choice.SetVlanVidCase", action.getActionChoice().getImplementedInterface().getName());\r
-        setVlanVidCase = (SetVlanVidCase) action.getActionChoice();\r
-        Assert.assertEquals("Wrong vlan id", 22, setVlanVidCase.getSetVlanVidAction().getVlanVid().intValue());\r
-    }\r
-\r
-    /**\r
-     * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.ActionResponseConvertor#convert(java.util.List, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionResponseConvertorData)}}\r
-     */\r
-    @Test\r
-    public void testToMDSalActions() {\r
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action> actions = new ArrayList<>();\r
-        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder actionbuilder = \r
-                new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder();\r
-\r
-        OutputActionCaseBuilder caseBuilder = new OutputActionCaseBuilder();\r
-        OutputActionBuilder outputBuilder = new OutputActionBuilder();\r
-        outputBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber(14L));\r
-        outputBuilder.setMaxLength(555);\r
-        caseBuilder.setOutputAction(outputBuilder.build());\r
-        actionbuilder.setActionChoice(caseBuilder.build());\r
-        actions.add(actionbuilder.build());\r
-\r
-        ActionResponseConvertorData data = new ActionResponseConvertorData(OFConstants.OFP_VERSION_1_0);\r
-        data.setActionPath(ActionPath.FLOWSSTATISTICSUPDATE_FLOWANDSTATISTICSMAPLIST_INSTRUCTIONS_INSTRUCTION_INSTRUCTION_APPLYACTIONSCASE_APPLYACTIONS_ACTION_ACTION);\r
-\r
-        Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action\r
-        .Action>> mdSalActionsOptional =\r
-                convertorManager.convert(\r
-                        actions, data);\r
-\r
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action\r
-                .Action> mdSalActions = mdSalActionsOptional.orElse(Collections.emptyList());\r
-\r
-        Assert.assertEquals("Wrong number of output actions", 1, mdSalActions.size());\r
-        org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action = mdSalActions.get(0);\r
-        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types"\r
-                + ".rev131112.action.action.OutputActionCase", action.getImplementedInterface().getName());\r
-        OutputActionCase outputAction = (OutputActionCase) action;\r
-        Assert.assertEquals("Wrong output port", "14", outputAction.getOutputAction().getOutputNodeConnector().getValue());\r
-        Assert.assertEquals("Wrong max length", 555, outputAction.getOutputAction().getMaxLength().intValue());\r
-    }\r
-}\r
+/*
+ * Copyright (c) 2014 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.openflow.md.core.sal.convertor.action;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.openflowplugin.api.OFConstants;
+import org.opendaylight.openflowplugin.extension.api.path.ActionPath;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionResponseConvertorData;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.flow.FlowConvertorUtil;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpVersion;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
+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.action.types.rev131112.action.action.OutputActionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlDstActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlSrcActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwDstActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTosActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpDstActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpSrcActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanIdActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanPcpActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.StripVlanActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.dl.dst.action._case.SetDlDstActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.dl.src.action._case.SetDlSrcActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field._case.SetFieldBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.dst.action._case.SetNwDstActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.src.action._case.SetNwSrcActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.tos.action._case.SetNwTosActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.tp.dst.action._case.SetTpDstActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.tp.src.action._case.SetTpSrcActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.id.action._case.SetVlanIdActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.pcp.action._case.SetVlanPcpActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.strip.vlan.action._case.StripVlanActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.address.address.Ipv4Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlDstCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlSrcCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwDstCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwSrcCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTosCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpDstCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpSrcCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanPcpCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanVidCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.output.action._case.OutputActionBuilder;
+
+/**
+ * @author michal.polkorab
+ *
+ */
+public class ActionConvertorV10Test {
+    private ConvertorManager convertorManager;
+
+    @Before
+    public void setUp() {
+        convertorManager = ConvertorManagerFactory.createDefaultManager();
+    }
+
+    /**
+     * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.ActionConvertor#convert(java.util.List, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData)}}
+     */
+    @Test
+    public void testGetActions() {
+        List<Action> salActions = new ArrayList<>();
+        ActionBuilder actionBuilder = new ActionBuilder();
+        SetVlanPcpActionCaseBuilder vlanPcpCaseBuilder = new SetVlanPcpActionCaseBuilder();
+        SetVlanPcpActionBuilder pcpBuilder = new SetVlanPcpActionBuilder();
+        pcpBuilder.setVlanPcp(new VlanPcp((short) 7));
+        vlanPcpCaseBuilder.setSetVlanPcpAction(pcpBuilder.build());
+        actionBuilder.setAction(vlanPcpCaseBuilder.build());
+        actionBuilder.setOrder(0);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        StripVlanActionCaseBuilder stripCaseBuilder = new StripVlanActionCaseBuilder();
+        StripVlanActionBuilder stripBuilder = new StripVlanActionBuilder();
+        stripCaseBuilder.setStripVlanAction(stripBuilder.build());
+        actionBuilder.setAction(stripCaseBuilder.build());
+        actionBuilder.setOrder(1);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetDlDstActionCaseBuilder dlDstCaseBuilder = new SetDlDstActionCaseBuilder();
+        SetDlDstActionBuilder dlDstBuilder = new SetDlDstActionBuilder();
+        dlDstBuilder.setAddress(new MacAddress("00:00:00:00:00:06"));
+        dlDstCaseBuilder.setSetDlDstAction(dlDstBuilder.build());
+        actionBuilder.setAction(dlDstCaseBuilder.build());
+        actionBuilder.setOrder(2);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetDlSrcActionCaseBuilder dlSrcCaseBuilder = new SetDlSrcActionCaseBuilder();
+        SetDlSrcActionBuilder dlSrcBuilder = new SetDlSrcActionBuilder();
+        dlSrcBuilder.setAddress(new MacAddress("00:00:00:00:00:05"));
+        dlSrcCaseBuilder.setSetDlSrcAction(dlSrcBuilder.build());
+        actionBuilder.setAction(dlSrcCaseBuilder.build());
+        actionBuilder.setOrder(3);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetNwSrcActionCaseBuilder nwSrcCaseBuilder = new SetNwSrcActionCaseBuilder();
+        SetNwSrcActionBuilder nwSrcBuilder = new SetNwSrcActionBuilder();
+        Ipv4Builder ipv4Builder = new Ipv4Builder();
+        /* Use prefix which is correct in canonical representation in test */
+        ipv4Builder.setIpv4Address(new Ipv4Prefix("10.0.0.0/24"));
+        nwSrcBuilder.setAddress(ipv4Builder.build());
+        nwSrcCaseBuilder.setSetNwSrcAction(nwSrcBuilder.build());
+        actionBuilder.setAction(nwSrcCaseBuilder.build());
+        actionBuilder.setOrder(4);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetNwDstActionCaseBuilder nwDstCaseBuilder = new SetNwDstActionCaseBuilder();
+        SetNwDstActionBuilder nwDstBuilder = new SetNwDstActionBuilder();
+        ipv4Builder = new Ipv4Builder();
+        ipv4Builder.setIpv4Address(new Ipv4Prefix("10.0.0.2/32"));
+        nwDstBuilder.setAddress(ipv4Builder.build());
+        nwDstCaseBuilder.setSetNwDstAction(nwDstBuilder.build());
+        actionBuilder.setAction(nwDstCaseBuilder.build());
+        actionBuilder.setOrder(5);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetTpSrcActionCaseBuilder tpSrcCaseBuilder = new SetTpSrcActionCaseBuilder();
+        SetTpSrcActionBuilder tpSrcBuilder = new SetTpSrcActionBuilder();
+        tpSrcBuilder.setPort(new PortNumber(54));
+        tpSrcCaseBuilder.setSetTpSrcAction(tpSrcBuilder.build());
+        actionBuilder.setAction(tpSrcCaseBuilder.build());
+        actionBuilder.setOrder(6);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetTpDstActionCaseBuilder tpDstCaseBuilder = new SetTpDstActionCaseBuilder();
+        SetTpDstActionBuilder tpDstBuilder = new SetTpDstActionBuilder();
+        tpDstBuilder.setPort(new PortNumber(45));
+        tpDstCaseBuilder.setSetTpDstAction(tpDstBuilder.build());
+        actionBuilder.setAction(tpDstCaseBuilder.build());
+        actionBuilder.setOrder(7);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetNwTosActionCaseBuilder tosCaseBuilder = new SetNwTosActionCaseBuilder();
+        SetNwTosActionBuilder tosBuilder = new SetNwTosActionBuilder();
+        tosBuilder.setTos(18);
+        tosCaseBuilder.setSetNwTosAction(tosBuilder.build());
+        actionBuilder.setAction(tosCaseBuilder.build());
+        actionBuilder.setOrder(8);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetVlanIdActionCaseBuilder vlanIdCaseBuilder = new SetVlanIdActionCaseBuilder();
+        SetVlanIdActionBuilder vlanIdBuilder = new SetVlanIdActionBuilder();
+        vlanIdBuilder.setVlanId(new VlanId(22));
+        vlanIdCaseBuilder.setSetVlanIdAction(vlanIdBuilder.build());
+        actionBuilder.setAction(vlanIdCaseBuilder.build());
+        actionBuilder.setOrder(9);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        PopVlanActionCaseBuilder popVlanActionCaseBuilder = new PopVlanActionCaseBuilder();
+        actionBuilder.setAction(popVlanActionCaseBuilder.build());
+        actionBuilder.setOrder(10);
+        salActions.add(actionBuilder.build());
+
+        actionBuilder = new ActionBuilder();
+        SetFieldCaseBuilder setFieldCaseBuilder = new SetFieldCaseBuilder();
+        SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+        VlanMatchBuilder vlanMatchBuilder = new VlanMatchBuilder();
+        vlanMatchBuilder.setVlanId(new VlanIdBuilder().setVlanId(new VlanId(22)).build());
+        setFieldBuilder.setVlanMatch(vlanMatchBuilder.build());
+        setFieldCaseBuilder.setSetField(setFieldBuilder.build());
+        actionBuilder.setAction(setFieldCaseBuilder.build());
+        actionBuilder.setOrder(11);
+        salActions.add(actionBuilder.build());
+
+        IpMatchBuilder ipMatchBld = new IpMatchBuilder().setIpProto(IpVersion.Ipv4);
+        MatchBuilder matchBld = new MatchBuilder().setIpMatch(ipMatchBld.build());
+        FlowBuilder flowBld = new FlowBuilder().setMatch(matchBld.build());
+        Flow flow = flowBld.build();
+
+        ActionConvertorData data = new ActionConvertorData(OFConstants.OFP_VERSION_1_0);
+        data.setDatapathId(new BigInteger("42"));
+        data.setIpProtocol(FlowConvertorUtil.getIpProtocolFromFlow(flow));
+
+        Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action>> actionsOptional =
+                convertorManager.convert(salActions, data);
+
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action> actions = actionsOptional.orElse(Collections.emptyList());
+
+        Assert.assertEquals("Wrong number of actions", 12, actions.size());
+
+        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action action = actions.get(0);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetVlanPcpCase", action.getActionChoice().getImplementedInterface().getName());
+        SetVlanPcpCase setVlanPcpCase = (SetVlanPcpCase) action.getActionChoice();
+        Assert.assertEquals("Wrong vlan pcp", 7, setVlanPcpCase.getSetVlanPcpAction().getVlanPcp().intValue());
+
+        action = actions.get(1);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.StripVlanCase", action.getActionChoice().getImplementedInterface().getName());
+
+        action = actions.get(2);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetDlDstCase", action.getActionChoice().getImplementedInterface().getName());
+        SetDlDstCase setDlDstCase = (SetDlDstCase) action.getActionChoice();
+        Assert.assertEquals("Wrong dl dst", "00:00:00:00:00:06", setDlDstCase.getSetDlDstAction().getDlDstAddress().getValue());
+
+        action = actions.get(3);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetDlSrcCase", action.getActionChoice().getImplementedInterface().getName());
+        SetDlSrcCase setDlSrcCase = (SetDlSrcCase) action.getActionChoice();
+        Assert.assertEquals("Wrong dl src", "00:00:00:00:00:05", setDlSrcCase.getSetDlSrcAction().getDlSrcAddress().getValue());
+
+        action = actions.get(4);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetNwSrcCase", action.getActionChoice().getImplementedInterface().getName());
+        SetNwSrcCase setNwSrcCase = (SetNwSrcCase) action.getActionChoice();
+        Assert.assertEquals("Wrong nw src", "10.0.0.0", setNwSrcCase.getSetNwSrcAction().getIpAddress().getValue());
+
+        action = actions.get(5);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetNwDstCase", action.getActionChoice().getImplementedInterface().getName());
+        SetNwDstCase setNwDstCase = (SetNwDstCase) action.getActionChoice();
+        Assert.assertEquals("Wrong nw dst", "10.0.0.2", setNwDstCase.getSetNwDstAction().getIpAddress().getValue());
+
+        action = actions.get(6);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetTpSrcCase", action.getActionChoice().getImplementedInterface().getName());
+        SetTpSrcCase setTpSrcCase = (SetTpSrcCase) action.getActionChoice();
+        Assert.assertEquals("Wrong tp src", 54, setTpSrcCase.getSetTpSrcAction().getPort().getValue().intValue());
+
+        action = actions.get(7);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetTpDstCase", action.getActionChoice().getImplementedInterface().getName());
+        SetTpDstCase setTpDstCase = (SetTpDstCase) action.getActionChoice();
+        Assert.assertEquals("Wrong tp dst", 45, setTpDstCase.getSetTpDstAction().getPort().getValue().intValue());
+
+        action = actions.get(8);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetNwTosCase", action.getActionChoice().getImplementedInterface().getName());
+        SetNwTosCase setNwTosCase = (SetNwTosCase) action.getActionChoice();
+        Assert.assertEquals("Wrong nw tos", 18, setNwTosCase.getSetNwTosAction().getNwTos().intValue());
+
+        action = actions.get(9);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetVlanVidCase", action.getActionChoice().getImplementedInterface().getName());
+        SetVlanVidCase setVlanVidCase = (SetVlanVidCase) action.getActionChoice();
+        Assert.assertEquals("Wrong vlan id", 22, setVlanVidCase.getSetVlanVidAction().getVlanVid().intValue());
+
+        action = actions.get(10);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.StripVlanCase", action.getActionChoice().getImplementedInterface().getName());
+
+        action = actions.get(11);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"
+                + ".action.rev150203.action.grouping.action.choice.SetVlanVidCase", action.getActionChoice().getImplementedInterface().getName());
+        setVlanVidCase = (SetVlanVidCase) action.getActionChoice();
+        Assert.assertEquals("Wrong vlan id", 22, setVlanVidCase.getSetVlanVidAction().getVlanVid().intValue());
+    }
+
+    /**
+     * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.ActionResponseConvertor#convert(java.util.List, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionResponseConvertorData)}}
+     */
+    @Test
+    public void testToMDSalActions() {
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action> actions = new ArrayList<>();
+        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder actionbuilder =
+                new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder();
+
+        OutputActionCaseBuilder caseBuilder = new OutputActionCaseBuilder();
+        OutputActionBuilder outputBuilder = new OutputActionBuilder();
+        outputBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber(14L));
+        outputBuilder.setMaxLength(555);
+        caseBuilder.setOutputAction(outputBuilder.build());
+        actionbuilder.setActionChoice(caseBuilder.build());
+        actions.add(actionbuilder.build());
+
+        ActionResponseConvertorData data = new ActionResponseConvertorData(OFConstants.OFP_VERSION_1_0);
+        data.setActionPath(ActionPath.FLOWS_STATISTICS_UPDATE_APPLY_ACTIONS);
+
+        Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action
+        .Action>> mdSalActionsOptional =
+                convertorManager.convert(
+                        actions, data);
+
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action
+                .Action> mdSalActions = mdSalActionsOptional.orElse(Collections.emptyList());
+
+        Assert.assertEquals("Wrong number of output actions", 1, mdSalActions.size());
+        org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action = mdSalActions.get(0);
+        Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types"
+                + ".rev131112.action.action.OutputActionCase", action.getImplementedInterface().getName());
+        OutputActionCase outputAction = (OutputActionCase) action;
+        Assert.assertEquals("Wrong output port", "14", outputAction.getOutputAction().getOutputNodeConnector().getValue());
+        Assert.assertEquals("Wrong max length", 555, outputAction.getOutputAction().getMaxLength().intValue());
+    }
+}