3 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7 * and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.opendaylight.controller.forwarding.staticrouting;
13 import java.net.InetAddress;
14 import org.junit.Assert;
15 import org.junit.Test;
16 import org.opendaylight.controller.forwarding.staticrouting.StaticRoute.NextHopType;
17 import org.opendaylight.controller.sal.utils.Status;
18 import org.opendaylight.controller.sal.utils.StatusCode;
20 public class StaticRouteConfigTest {
23 public void testStaticRouteSetGet() {
24 StaticRouteConfig staticRouteConfig1 = new StaticRouteConfig();
25 staticRouteConfig1.setName("route");
26 staticRouteConfig1.setStaticRoute("10.1.1.2/32");
27 staticRouteConfig1.setNextHop("200.2.2.2");
28 staticRouteConfig1.setNextHopType(NextHopType.IPADDRESS.toString());
29 StaticRouteConfig staticRouteConfig2 = new StaticRouteConfig("route", "10.1.1.2/32", "200.2.2.2");
31 Assert.assertEquals(staticRouteConfig2.getName(), staticRouteConfig1.getName());
32 Assert.assertEquals(staticRouteConfig2.getStaticRoute(), staticRouteConfig1.getStaticRoute());
33 Assert.assertEquals(staticRouteConfig2.getNextHop(), staticRouteConfig1.getNextHop());
34 Assert.assertEquals("nexthop-ip", staticRouteConfig1.getNextHopType());
38 public void testStaticRouteisValid() {
39 StaticRouteConfig staticRouteConfig1 = new StaticRouteConfig("route1", "10.1.1.254/24", "100.1.1.1");
40 Status receivedResponse1 = staticRouteConfig1.isValid();
41 Status expectedResponse1 = new Status(StatusCode.SUCCESS, null);
42 Assert.assertEquals(expectedResponse1.toString(), receivedResponse1.toString());
44 StaticRouteConfig staticRouteConfig2 = new StaticRouteConfig("", "", "100.1.1.1");
45 Status receivedResponse2 = staticRouteConfig2.isValid();
46 Status expectedResponse2 = new Status(StatusCode.BADREQUEST,
47 "Invalid Static Route name");
48 Assert.assertEquals(expectedResponse2.toString(), receivedResponse2.toString());
50 StaticRouteConfig staticRouteConfig3 = new StaticRouteConfig("route1", "10.1.1.254", "100.1.1.1");
51 Status receivedResponse3 = staticRouteConfig3.isValid();
52 Status expectedResponse3 = new Status(StatusCode.BADREQUEST,
53 "Invalid Static Route entry. Please use the " +
54 "IPAddress/mask format. Default gateway " +
55 "(0.0.0.0/0) is NOT supported.");
56 Assert.assertEquals(expectedResponse3.toString(), receivedResponse3.toString());
58 StaticRouteConfig staticRouteConfig4 = new StaticRouteConfig("route1", "289.1.1.254/24", "100.1.1.1");
59 Status receivedResponse4 = staticRouteConfig4.isValid();
60 Status expectedResponse4 = new Status(StatusCode.BADREQUEST,
61 "Invalid Static Route entry. Please use the " +
62 "IPAddress/mask format. Default gateway " +
63 "(0.0.0.0/0) is NOT supported.");
64 Assert.assertEquals(expectedResponse4.toString(), receivedResponse4.toString());
66 StaticRouteConfig staticRouteConfig5 = new StaticRouteConfig("route1", "10.1.1.254/24", "100.1.1");
67 Status receivedResponse5 = staticRouteConfig5.isValid();
68 Status expectedResponse5 = new Status(StatusCode.BADREQUEST,
69 "Invalid NextHop IP Address configuration. " +
70 "Please use the X.X.X.X format.");
71 Assert.assertEquals(expectedResponse5.toString(), receivedResponse5.toString());
75 public void testGetStaticRouteIP() {
76 StaticRouteConfig staticRouteConfig1 = new StaticRouteConfig("route1", "10.1.1.0/24", "100.1.1.1");
77 InetAddress ip1 = staticRouteConfig1.getStaticRouteIP();
78 Assert.assertEquals("10.1.1.0", ip1.getHostAddress());
80 StaticRouteConfig staticRouteConfig2 = new StaticRouteConfig("route1", "10.1.1.0/80", "100.1.1.1");
81 InetAddress ip2 = staticRouteConfig2.getStaticRouteIP();
82 Assert.assertEquals(null, ip2);
87 public void testGetStaticRouteMask() {
88 StaticRouteConfig staticRouteConfig1 = new StaticRouteConfig("route1", "10.1.1.0/24", "100.1.1.1");
89 Short receivedMaskLen1 = staticRouteConfig1.getStaticRouteMask();
90 Short expectedMaskLen1 = 24;
91 Assert.assertEquals(expectedMaskLen1, receivedMaskLen1);
93 StaticRouteConfig staticRouteConfig2 = new StaticRouteConfig("route1", "10.1.1.0/40", "100.1.1.1");
94 Short receivedMaskLen2 = staticRouteConfig2.getStaticRouteMask();
95 Short expectedMaskLen2 = 0;
96 Assert.assertEquals(expectedMaskLen2, receivedMaskLen2);
100 public void testGetNextHopIP() {
101 StaticRouteConfig staticRouteConfig1 = new StaticRouteConfig("route1", "10.1.1.254/24", "100.1.1.1");
102 InetAddress ip1 = staticRouteConfig1.getNextHopIP();
103 Assert.assertEquals("100.1.1.1", ip1.getHostAddress());
105 StaticRouteConfig staticRouteConfig2 = new StaticRouteConfig("route1", "10.1.1.254/24", "100.1.1");
106 InetAddress ip2 = staticRouteConfig2.getNextHopIP();
107 Assert.assertEquals(null, ip2);