2c1f2a31251f08e8cb38b12e6506f8a2072c1c0a
[groupbasedpolicy.git] / neutron-vpp-mapper / src / test / java / org / opendaylight / groupbasedpolicy / neutron / vpp / mapper / processors / TestUtils.java
1 /*\r
2  * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.processors;\r
10 \r
11 import static org.junit.Assert.assertEquals;\r
12 import static org.junit.Assert.assertNotNull;\r
13 import static org.junit.Assert.assertTrue;\r
14 \r
15 import java.util.Iterator;\r
16 \r
17 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;\r
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContextId;\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.UniqueId;\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev160427.MacAddressType;\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.AddressType;\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.ContextType;\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.Mappings;\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.GbpByNeutronMappings;\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.BaseEndpointsByPorts;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.base.endpoints.by.ports.BaseEndpointByPort;\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.base.endpoints.by.ports.BaseEndpointByPortBuilder;\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.base.endpoints.by.ports.BaseEndpointByPortKey;\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.Config;\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpoint;\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpointKey;\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtension;\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtensionBuilder;\r
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.Ports;\r
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;\r
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.PortBuilder;\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.PortKey;\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;\r
40 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
41 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;\r
42 \r
43 public class TestUtils {\r
44 \r
45     public static Port createValidVppPort() {\r
46         PortBindingExtension portBindingExt = new PortBindingExtensionBuilder().setHostId("devstack-control")\r
47             .setVifType("vhostuser")\r
48             .build();\r
49         return new PortBuilder().setUuid(new Uuid("00000000-1111-2222-3333-444444444444"))\r
50             .setDeviceOwner("compute")\r
51             .addAugmentation(PortBindingExtension.class, portBindingExt)\r
52             .build();\r
53     }\r
54 \r
55     public static Port createNonVppPort() {\r
56         return new PortBuilder().setUuid(new Uuid("00000000-1111-2222-3333-444444444444"))\r
57             .setDeviceOwner("owner1")\r
58             .build();\r
59     }\r
60 \r
61     public static BaseEndpointByPort createBaseEndpointByPortForPort() {\r
62         return new BaseEndpointByPortBuilder().setContextId(new ContextId("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"))\r
63             .setAddress("00:11:11:11:11:11")\r
64             .setPortId(new UniqueId("00000000-1111-2222-3333-444444444444"))\r
65             .setContextType(MappingUtils.L2_BRDIGE_DOMAIN)\r
66             .setAddressType(MacAddressType.class)\r
67             .build();\r
68     }\r
69 \r
70     public static VppEndpointKey createVppEndpointKey(BaseEndpointByPort bebp) {\r
71         return new VppEndpointKey(bebp.getAddress(), bebp.getAddressType(), bebp.getContextId(), bebp.getContextType());\r
72     }\r
73 \r
74     public static InstanceIdentifier<VppEndpoint> createVppEpIid(VppEndpointKey key) {\r
75         return InstanceIdentifier.builder(Config.class).child(VppEndpoint.class, key).build();\r
76     }\r
77 \r
78     public static InstanceIdentifier<VppEndpoint> createVppEpIid(String addr, Class<? extends AddressType> addrType,\r
79             ContextId ctxId, Class<? extends ContextType> ctxType) {\r
80         return createVppEpIid(new VppEndpointKey(addr, addrType, ctxId, ctxType));\r
81     }\r
82 \r
83     public static InstanceIdentifier<Port> createPortIid(PortKey portKey) {\r
84         return InstanceIdentifier.builder(Neutron.class).child(Ports.class).child(Port.class, portKey).build();\r
85     }\r
86 \r
87     public static InstanceIdentifier<BaseEndpointByPort> createBaseEpByPortIid(Uuid uuid) {\r
88         return createBaseEpByPortIid(new UniqueId(uuid.getValue()));\r
89     }\r
90 \r
91     public static InstanceIdentifier<BaseEndpointByPort> createBaseEpByPortIid(UniqueId uuid) {\r
92         return InstanceIdentifier.builder(Mappings.class)\r
93             .child(GbpByNeutronMappings.class)\r
94             .child(BaseEndpointsByPorts.class)\r
95             .child(BaseEndpointByPort.class, new BaseEndpointByPortKey(uuid))\r
96             .build();\r
97     }\r
98 \r
99     public static void assertPathArgumentTypes(Iterable<PathArgument> pathArguments, Class<?>[] expectedTypes) {\r
100         assertNotNull(pathArguments);\r
101         Iterator<PathArgument> it = pathArguments.iterator();\r
102         for (int i = 0; i < expectedTypes.length; ++i) {\r
103             assertTrue("Next path argument expected.", it.hasNext());\r
104             assertEquals("Unexpected path argument type.", expectedTypes[i], it.next().getType());\r
105         }\r
106     }\r
107 }\r