Fixing socket for vpp endpoint
[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.Collections;\r
16 import java.util.Iterator;\r
17 \r
18 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;\r
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContextId;\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.UniqueId;\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev160427.MacAddressType;\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.AddressType;\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.ContextType;\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.Mappings;\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.GbpByNeutronMappings;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.BaseEndpointsByPorts;\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.base.endpoints.by.ports.BaseEndpointByPort;\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.base.endpoints.by.ports.BaseEndpointByPortBuilder;\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.mappings.gbp.by.neutron.mappings.base.endpoints.by.ports.BaseEndpointByPortKey;\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.Config;\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpoint;\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.VppEndpointKey;\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtension;\r
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtensionBuilder;\r
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.binding.attributes.VifDetailsBuilder;\r
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.binding.attributes.VifDetailsKey;\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.Ports;\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.PortBuilder;\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.PortKey;\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;\r
43 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
44 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;\r
45 \r
46 public class TestUtils {\r
47     public static String TEST_SOCKET = "/tmp/socket_testsocket";\r
48 \r
49     public static Port createValidVppPort() {\r
50         PortBindingExtension portBindingExt = new PortBindingExtensionBuilder().setHostId("devstack-control")\r
51             .setVifType("vhostuser")\r
52             .setVifDetails(Collections.singletonList(\r
53                 new VifDetailsBuilder().setKey(new VifDetailsKey("vhostuser_socket"))\r
54                     .setValue(TEST_SOCKET)\r
55                     .build()))\r
56             .build();\r
57         return new PortBuilder().setUuid(new Uuid("00000000-1111-2222-3333-444444444444"))\r
58             .setDeviceOwner("compute")\r
59             .addAugmentation(PortBindingExtension.class, portBindingExt)\r
60             .build();\r
61     }\r
62 \r
63     public static Port createNonVppPort() {\r
64         return new PortBuilder().setUuid(new Uuid("00000000-1111-2222-3333-444444444444"))\r
65             .setDeviceOwner("owner1")\r
66             .build();\r
67     }\r
68 \r
69     public static BaseEndpointByPort createBaseEndpointByPortForPort() {\r
70         return new BaseEndpointByPortBuilder().setContextId(new ContextId("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"))\r
71             .setAddress("00:11:11:11:11:11")\r
72             .setPortId(new UniqueId("00000000-1111-2222-3333-444444444444"))\r
73             .setContextType(MappingUtils.L2_BRDIGE_DOMAIN)\r
74             .setAddressType(MacAddressType.class)\r
75             .build();\r
76     }\r
77 \r
78     public static VppEndpointKey createVppEndpointKey(BaseEndpointByPort bebp) {\r
79         return new VppEndpointKey(bebp.getAddress(), bebp.getAddressType(), bebp.getContextId(), bebp.getContextType());\r
80     }\r
81 \r
82     public static InstanceIdentifier<VppEndpoint> createVppEpIid(VppEndpointKey key) {\r
83         return InstanceIdentifier.builder(Config.class).child(VppEndpoint.class, key).build();\r
84     }\r
85 \r
86     public static InstanceIdentifier<VppEndpoint> createVppEpIid(String addr, Class<? extends AddressType> addrType,\r
87             ContextId ctxId, Class<? extends ContextType> ctxType) {\r
88         return createVppEpIid(new VppEndpointKey(addr, addrType, ctxId, ctxType));\r
89     }\r
90 \r
91     public static InstanceIdentifier<Port> createPortIid(PortKey portKey) {\r
92         return InstanceIdentifier.builder(Neutron.class).child(Ports.class).child(Port.class, portKey).build();\r
93     }\r
94 \r
95     public static InstanceIdentifier<BaseEndpointByPort> createBaseEpByPortIid(Uuid uuid) {\r
96         return createBaseEpByPortIid(new UniqueId(uuid.getValue()));\r
97     }\r
98 \r
99     public static InstanceIdentifier<BaseEndpointByPort> createBaseEpByPortIid(UniqueId uuid) {\r
100         return InstanceIdentifier.builder(Mappings.class)\r
101             .child(GbpByNeutronMappings.class)\r
102             .child(BaseEndpointsByPorts.class)\r
103             .child(BaseEndpointByPort.class, new BaseEndpointByPortKey(uuid))\r
104             .build();\r
105     }\r
106 \r
107     public static void assertPathArgumentTypes(Iterable<PathArgument> pathArguments, Class<?>[] expectedTypes) {\r
108         assertNotNull(pathArguments);\r
109         Iterator<PathArgument> it = pathArguments.iterator();\r
110         for (int i = 0; i < expectedTypes.length; ++i) {\r
111             assertTrue("Next path argument expected.", it.hasNext());\r
112             assertEquals("Unexpected path argument type.", expectedTypes[i], it.next().getType());\r
113         }\r
114     }\r
115 }\r