HONEYCOMB-154: update revison of models that changed since 16.09
[honeycomb.git] / v3po / v3po2vpp / src / test / java / io / fd / honeycomb / translate / v3po / initializers / VppInitializerTest.java
1 /*
2  * Copyright (c) 2016 Cisco and/or its affiliates.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package io.fd.honeycomb.translate.v3po.initializers;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.mockito.MockitoAnnotations.initMocks;
21
22 import java.util.Arrays;
23 import org.junit.Before;
24 import org.junit.Test;
25 import org.mockito.Mock;
26 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.Vpp;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.VppBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.VppState;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.VppStateBuilder;
31
32 public class VppInitializerTest {
33
34     @Mock
35     private DataBroker bindingDataBroker;
36
37     private VppInitializer vppInitializer;
38
39     @Before
40     public void setUp() throws Exception {
41         initMocks(this);
42         vppInitializer = new VppInitializer(bindingDataBroker);
43     }
44
45     @Test
46     public void testConvert() throws Exception {
47         final VppState operationalData = operationalData();
48         final Vpp expectedConfigData = expectedConfigData();
49         final Vpp configData = vppInitializer.convert(operationalData);
50         assertEquals(expectedConfigData, configData);
51     }
52
53     private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.bridge.domains.BridgeDomain
54     operBd(String name, boolean learn, boolean unknownUnicastFlood, boolean arpTermination, boolean flood,
55            boolean forward) {
56         final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.bridge.domains.BridgeDomainBuilder
57                 bd =
58                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.bridge.domains.BridgeDomainBuilder();
59         bd.setName(name);
60         bd.setKey(
61                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.bridge.domains.BridgeDomainKey(
62                         name));
63         bd.setLearn(learn);
64         bd.setUnknownUnicastFlood(unknownUnicastFlood);
65         bd.setArpTermination(arpTermination);
66         bd.setFlood(flood);
67         bd.setForward(forward);
68         return bd.build();
69     }
70
71     private VppState operationalData() {
72         final VppStateBuilder builder = new VppStateBuilder();
73
74         final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.BridgeDomainsBuilder
75                 bdBuilder =
76                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.BridgeDomainsBuilder();
77         bdBuilder.setBridgeDomain(Arrays.asList(
78                 operBd("b1", true, true, true, true, true),
79                 operBd("b2", false, false, false, false, false)
80         ));
81         builder.setBridgeDomains(bdBuilder.build());
82         return builder.build();
83     }
84
85     private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.bridge.domains.BridgeDomain
86     configBd(String name, boolean learn, boolean unknownUnicastFlood, boolean arpTermination, boolean flood,
87            boolean forward) {
88         final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.bridge.domains.BridgeDomainBuilder
89                 bd =
90                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.bridge.domains.BridgeDomainBuilder();
91         bd.setName(name);
92         bd.setKey(
93                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.bridge.domains.BridgeDomainKey(
94                         name));
95         bd.setLearn(learn);
96         bd.setUnknownUnicastFlood(unknownUnicastFlood);
97         bd.setArpTermination(arpTermination);
98         bd.setFlood(flood);
99         bd.setForward(forward);
100         return bd.build();
101     }
102
103     private Vpp expectedConfigData() {
104         final VppBuilder builder = new VppBuilder();
105
106         final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.BridgeDomainsBuilder
107                 bdBuilder =
108                 new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.BridgeDomainsBuilder();
109         bdBuilder.setBridgeDomain(Arrays.asList(
110                 configBd("b1", true, true, true, true, true),
111                 configBd("b2", false, false, false, false, false)
112         ));
113         builder.setBridgeDomains(bdBuilder.build());
114         return builder.build();
115     }
116 }