Bump MRI upstreams
[bgpcep.git] / bgp / rib-impl / src / test / java / org / opendaylight / protocol / bgp / rib / impl / config / RIBTestsUtil.java
1 /*
2  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.protocol.bgp.rib.impl.config;
9
10 import static org.opendaylight.protocol.bgp.rib.impl.config.AbstractConfig.AS;
11 import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.NEIGHBOR_ADDRESS;
12 import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createAddPath;
13 import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createAfiSafi;
14 import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createConfig;
15 import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createNeighborExpected;
16 import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createTimers;
17 import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createTransport;
18
19 import java.util.Map;
20 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafi;
21 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafiBuilder;
22 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafiKey;
23 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.AfiSafisBuilder;
24 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.ConfigBuilder;
25 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.StateBuilder;
26 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
27 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.NeighborBuilder;
28 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
29 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.GlobalBuilder;
30 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Neighbors;
31 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.NeighborsBuilder;
32 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV4UNICAST;
33 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV6UNICAST;
34 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.network.instance.protocol.GlobalAddPathsConfigBuilder;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.BgpId;
37 import org.opendaylight.yangtools.yang.binding.util.BindingMap;
38 import org.opendaylight.yangtools.yang.common.Uint8;
39
40 final class RIBTestsUtil {
41     private static final BgpId BGP_ID = new BgpId(new Ipv4AddressNoZone("127.0.0.1"));
42     private static final Map<AfiSafiKey, AfiSafi> AFISAFIS_IPV4 = BindingMap.of(new AfiSafiBuilder()
43         .setAfiSafiName(IPV4UNICAST.class)
44         .addAugmentation(new GlobalAddPathsConfigBuilder().setReceive(true).setSendMax(Uint8.ZERO).build())
45         .build());
46     private static final Map<AfiSafiKey, AfiSafi> AFISAFIS_IPV6 = BindingMap.of(new AfiSafiBuilder()
47         .setAfiSafiName(IPV6UNICAST.class)
48         .addAugmentation(new GlobalAddPathsConfigBuilder().setReceive(true).setSendMax(Uint8.ZERO).build())
49         .build());
50
51     private RIBTestsUtil() {
52         // Hidden on purpose
53     }
54
55     public static Global createGlobalIpv4() {
56         return new GlobalBuilder()
57                 .setAfiSafis(new AfiSafisBuilder().setAfiSafi(AFISAFIS_IPV4).build())
58                 .setConfig(new ConfigBuilder().setAs(AS).setRouterId(BGP_ID).build())
59                 .setState(new StateBuilder().setAs(AS).build())
60                 .build();
61     }
62
63     public static Global createGlobalIpv6() {
64         return new GlobalBuilder()
65                 .setAfiSafis(new AfiSafisBuilder().setAfiSafi(AFISAFIS_IPV6).build())
66                 .setConfig(new ConfigBuilder().setAs(AS).setRouterId(BGP_ID).build())
67                 .setState(new StateBuilder().setAs(AS).build())
68                 .build();
69     }
70
71     public static Neighbors createNeighbors() {
72         return new NeighborsBuilder()
73                 .setNeighbor(BindingMap.of(createNeighbor()))
74                 .build();
75     }
76
77     private static Neighbor createNeighbor() {
78         return createNeighborExpected(NEIGHBOR_ADDRESS);
79     }
80
81     public static Neighbors createNeighborsNoRR() {
82         return new NeighborsBuilder()
83                 .setNeighbor(BindingMap.of(createNeighborNoRR()))
84                 .build();
85     }
86
87     private static Neighbor createNeighborNoRR() {
88         return new NeighborBuilder()
89                 .setAfiSafis(createAfiSafi())
90                 .setConfig(createConfig())
91                 .setNeighborAddress(NEIGHBOR_ADDRESS)
92                 .setTimers(createTimers())
93                 .setTransport(createTransport())
94                 .setAddPaths(createAddPath())
95                 .build();
96     }
97 }