Migrate tests away from Optional.get()
[bgpcep.git] / bgp / openconfig-rp-spi / src / test / java / org / opendaylight / protocol / bgp / openconfig / routing / policy / spi / AsPathLengthTest.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.openconfig.routing.policy.spi;
9
10 import static org.junit.Assert.assertNotNull;
11 import static org.junit.Assert.assertNull;
12 import static org.mockito.Mockito.doReturn;
13 import static org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.RouteAttributeContainer.routeAttributeContainerFalse;
14
15 import java.util.List;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.mockito.Mock;
19 import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.RouteAttributeContainer;
20 import org.opendaylight.protocol.bgp.rib.spi.policy.BGPRouteEntryExportParameters;
21 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV4UNICAST;
22 import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.routing.policy.rev151009.routing.policy.top.routing.policy.policy.definitions.policy.definition.statements.Statement;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.AttributesBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.attributes.AsPathBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.attributes.as.path.SegmentsBuilder;
27
28 public class AsPathLengthTest extends AbstractStatementRegistryTest {
29     @Mock
30     private BGPRouteEntryExportParameters exportParameters;
31     private List<Statement> basicStatements;
32     @Mock
33     private RouteEntryBaseAttributes baseAttributes;
34
35     @Before
36     @Override
37     public void setUp() throws Exception {
38         super.setUp();
39         basicStatements = loadStatement("basic-statements-test");
40         doReturn(CLUSTER).when(baseAttributes).getClusterId();
41         doReturn(LOCAL_AS).when(baseAttributes).getLocalAs();
42         doReturn(IPV4).when(baseAttributes).getOriginatorId();
43     }
44
45     @Test
46     public void testASPathLengthEq() {
47         final AsPathBuilder asPath = new AsPathBuilder();
48         asPath.setSegments(List.of(new SegmentsBuilder()
49                 .setAsSequence(List.of(
50                         AsNumber.getDefaultInstance("1"),
51                         AsNumber.getDefaultInstance("2"),
52                         AsNumber.getDefaultInstance("3")))
53                 .build()));
54
55         Statement statement = basicStatements.stream()
56                 .filter(st -> st.getName().equals("as-path-eq-length-test")).findFirst().orElseThrow();
57         RouteAttributeContainer attributeContainer = routeAttributeContainerFalse(new AttributesBuilder()
58                 .setAsPath(asPath.build())
59                 .build());
60
61         RouteAttributeContainer result = statementRegistry.applyExportStatement(
62                 baseAttributes,
63                 IPV4UNICAST.VALUE,
64                 exportParameters,
65                 attributeContainer,
66                 statement);
67         assertNotNull(result.getAttributes());
68
69         asPath.setSegments(List.of(new SegmentsBuilder()
70                 .setAsSequence(List.of(
71                         AsNumber.getDefaultInstance("1"),
72                         AsNumber.getDefaultInstance("3")))
73                 .build()));
74
75         attributeContainer = routeAttributeContainerFalse(new AttributesBuilder().setAsPath(asPath.build()).build());
76         result = statementRegistry.applyExportStatement(
77                 baseAttributes,
78                 IPV4UNICAST.VALUE,
79                 exportParameters,
80                 attributeContainer,
81                 statement);
82         assertNull(result.getAttributes());
83     }
84
85     @Test
86     public void testASPathLengthGe() {
87         final AsPathBuilder asPath = new AsPathBuilder();
88         asPath.setSegments(List.of(new SegmentsBuilder()
89                 .setAsSequence(List.of(
90                         AsNumber.getDefaultInstance("1"),
91                         AsNumber.getDefaultInstance("2"),
92                         AsNumber.getDefaultInstance("3")))
93                 .build()));
94
95         Statement statement = basicStatements.stream()
96                 .filter(st -> st.getName().equals("as-path-ge-length-test")).findFirst().orElseThrow();
97         RouteAttributeContainer attributeContainer = routeAttributeContainerFalse(new AttributesBuilder()
98                 .setAsPath(asPath.build())
99                 .build());
100
101         RouteAttributeContainer result = statementRegistry.applyExportStatement(
102                 baseAttributes,
103                 IPV4UNICAST.VALUE,
104                 exportParameters,
105                 attributeContainer,
106                 statement);
107         assertNull(result.getAttributes());
108
109         asPath.setSegments(List.of(new SegmentsBuilder()
110                 .setAsSequence(List.of(AsNumber.getDefaultInstance("3")))
111                 .build()));
112
113         attributeContainer = routeAttributeContainerFalse(new AttributesBuilder().setAsPath(asPath.build()).build());
114         result = statementRegistry.applyExportStatement(
115                 baseAttributes,
116                 IPV4UNICAST.VALUE,
117                 exportParameters,
118                 attributeContainer,
119                 statement);
120         assertNotNull(result.getAttributes());
121     }
122
123     @Test
124     public void testASPathLengthLe() {
125         final AsPathBuilder asPath = new AsPathBuilder();
126         asPath.setSegments(List.of(new SegmentsBuilder()
127                 .setAsSequence(List.of(
128                         AsNumber.getDefaultInstance("1"),
129                         AsNumber.getDefaultInstance("2"),
130                         AsNumber.getDefaultInstance("3")))
131                 .build()));
132
133         Statement statement = basicStatements.stream()
134                 .filter(st -> st.getName().equals("as-path-le-length-test")).findFirst().orElseThrow();
135         RouteAttributeContainer attributeContainer = routeAttributeContainerFalse(new AttributesBuilder()
136                 .setAsPath(asPath.build())
137                 .build());
138
139         RouteAttributeContainer result = statementRegistry.applyExportStatement(
140                 baseAttributes,
141                 IPV4UNICAST.VALUE,
142                 exportParameters,
143                 attributeContainer,
144                 statement);
145         assertNotNull(result.getAttributes());
146
147         asPath.setSegments(List.of(new SegmentsBuilder()
148                 .setAsSequence(List.of(AsNumber.getDefaultInstance("3"))).build()));
149
150         attributeContainer = routeAttributeContainerFalse(new AttributesBuilder().setAsPath(asPath.build()).build());
151         result = statementRegistry.applyExportStatement(
152                 baseAttributes,
153                 IPV4UNICAST.VALUE,
154                 exportParameters,
155                 attributeContainer,
156                 statement);
157         assertNull(result.getAttributes());
158     }
159 }