RPC gate set/delete/info and Patch operation support
[packetcable.git] / packetcable-policy-server / src / test / java / org / opendaylight / controller / packetcable / provider / validation / impl / validators / qos / classifier / ExtClassifierValidatorTest.java
1 /*
2  * Copyright (c) 2015 CableLabs and others.  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
9 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
10
11 import org.junit.Rule;
12 import org.junit.Test;
13 import org.opendaylight.controller.packetcable.provider.test.rules.Params;
14 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
15 import org.opendaylight.controller.packetcable.provider.validation.Validator;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
18 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ClassifierActivationState;
19 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TosByte;
20 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.TpProtocol;
21 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifier;
22 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ext.classifier.ExtClassifierBuilder;
23
24 /**
25  * @author rvail
26  */
27 @Params.AlwaysUseParams
28 public class ExtClassifierValidatorTest {
29
30     @Rule
31     public Params<Validator.Extent> extentParams = Params.of(Validator.Extent.class);
32
33     private final ExtClassifierValidator validator = new ExtClassifierValidator();
34
35     @Test(expected = ValidationException.class)
36       public void nullExtClassifier() throws ValidationException {
37         validator.validate(null, extentParams.getCurrentParam());
38     }
39
40     @Test(expected = NullPointerException.class)
41     public void nullExtent() throws ValidationException {
42         validator.validate(buildValidExtClassifier(), null);
43     }
44
45     @Test
46     public void nullSrcIp() throws ValidationException {
47         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
48                 .setSrcIp(null)
49                 .build();
50
51         validator.validate(extClassifier, extentParams.getCurrentParam());
52     }
53
54     @Test
55     public void nullSrcPortStart() throws ValidationException {
56         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
57                 .setSrcPortStart(null)
58                 .build();
59
60         validator.validate(extClassifier, extentParams.getCurrentParam());
61     }
62
63     @Test
64     public void nullSrcPortEnd() throws ValidationException {
65         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
66                 .setSrcPortEnd(null)
67                 .build();
68
69         validator.validate(extClassifier, extentParams.getCurrentParam());
70     }
71
72     @Test
73     public void nullDstIp() throws ValidationException {
74         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
75                 .setDstIp(null)
76                 .build();
77
78         validator.validate(extClassifier, extentParams.getCurrentParam());
79     }
80
81     @Test
82     public void nullDstPortStart() throws ValidationException {
83         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
84                 .setDstPortStart(null)
85                 .build();
86
87         validator.validate(extClassifier, extentParams.getCurrentParam());
88     }
89
90     @Test
91     public void nullDstPortEnd() throws ValidationException {
92         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
93                 .setDstPortEnd(null)
94                 .build();
95
96         validator.validate(extClassifier, extentParams.getCurrentParam());
97     }
98
99     @Test
100     public void nullProtocol() throws ValidationException {
101         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
102                 .setProtocol(null)
103                 .build();
104
105         validator.validate(extClassifier, extentParams.getCurrentParam());
106     }
107
108     @Test
109     public void nullTosByte() throws ValidationException {
110         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
111                 .setTosByte(null)
112                 .build();
113
114         validator.validate(extClassifier, extentParams.getCurrentParam());
115     }
116
117     @Test
118     public void nullTosMask() throws ValidationException {
119         ExtClassifier extClassifier = new ExtClassifierBuilder(buildValidExtClassifier())
120                 .setTosMask(null)
121                 .build();
122
123         validator.validate(extClassifier, extentParams.getCurrentParam());
124     }
125
126     @Test
127     public void valid() throws ValidationException {
128         ExtClassifier extClassifier = buildValidExtClassifier();
129
130         validator.validate(extClassifier, extentParams.getCurrentParam());
131     }
132
133     public static ExtClassifier buildValidExtClassifier() {
134         return new ExtClassifierBuilder()
135                 .setSrcIp(new Ipv4Address("10.0.0.100"))
136                 .setSrcIpMask(new Ipv4Address("255.255.255.0"))
137                 .setSrcPortStart(new PortNumber(7000))
138                 .setSrcPortEnd(new PortNumber((7005)))
139                 .setDstIp(new Ipv4Address("10.0.0.200"))
140                 .setDstIpMask(new Ipv4Address("255.255.255.0"))
141                 .setDstPortStart(new PortNumber(7000))
142                 .setDstPortEnd(new PortNumber(7005))
143                 .setProtocol(new TpProtocol(127))
144                 .setTosByte(new TosByte((short)0x10))
145                 .setTosMask(new TosByte((short)0xf0))
146                 .setActivationState(ClassifierActivationState.Active)
147                 .build();
148     }
149 }