Added support for priority in all classifiers
[packetcable.git] / packetcable-policy-server / src / test / java / org / opendaylight / controller / packetcable / provider / validation / impl / validators / qos / classifier / Ipv6ClassifierValidatorTest.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.Ipv6Prefix;
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.rev161107.TosByte;
19 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161107.TpProtocol;
20 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161107.pcmm.qos.ipv6.classifier.Ipv6Classifier;
21 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161107.pcmm.qos.ipv6.classifier.Ipv6ClassifierBuilder;
22
23 /**
24  * @author rvail
25  */
26 @Params.AlwaysUseParams
27 public class Ipv6ClassifierValidatorTest {
28
29     @Rule
30     public Params<Validator.Extent> extentParams = Params.of(Validator.Extent.class);
31
32     private final Ipv6ClassifierValidator validator = new Ipv6ClassifierValidator();
33
34     @Test(expected = ValidationException.class)
35     public void nullIpv6Classifier() throws ValidationException {
36         validator.validate(null, extentParams.getCurrentParam());
37     }
38
39     @Test(expected = NullPointerException.class)
40     public void nullExtent() throws ValidationException {
41         validator.validate(buildValidIpv6Classifier(), null);
42     }
43
44     @Test
45     public void nullSrcIp6() throws ValidationException {
46         Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcIp6(null).build();
47
48         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
49     }
50
51     @Test
52     public void nullSrcPortStart() throws ValidationException {
53         Ipv6Classifier ipv6Classifier =
54                 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcPortStart(null).build();
55
56         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
57     }
58
59     @Test
60     public void nullSrcPortEnd() throws ValidationException {
61         Ipv6Classifier ipv6Classifier =
62                 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcPortEnd(null).build();
63
64         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
65     }
66
67     @Test
68     public void nullDstIp6() throws ValidationException {
69         Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstIp6(null).build();
70
71         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
72     }
73
74     @Test
75     public void nullDstPortStart() throws ValidationException {
76         Ipv6Classifier ipv6Classifier =
77                 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstPortStart(null).build();
78
79         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
80     }
81
82     @Test
83     public void nullDstPortEnd() throws ValidationException {
84         Ipv6Classifier ipv6Classifier =
85                 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstPortEnd(null).build();
86
87         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
88     }
89
90     @Test
91     public void nullFlowLabel() throws ValidationException {
92         Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setFlowLabel(null).build();
93
94         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
95     }
96
97     @Test
98     public void nullNextHdr() throws ValidationException {
99         Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setNextHdr(null).build();
100
101         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
102     }
103
104     @Test
105     public void nullTcHigh() throws ValidationException {
106         Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcHigh(null).build();
107
108         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
109     }
110
111     @Test
112     public void nullTcLow() throws ValidationException {
113         Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcLow(null).build();
114
115         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
116     }
117
118     @Test
119     public void nullTcMask() throws ValidationException {
120         Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcMask(null).build();
121
122         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
123     }
124
125     @Test
126     public void valid() throws ValidationException {
127         Ipv6Classifier ipv6Classifier = buildValidIpv6Classifier();
128
129         validator.validate(ipv6Classifier, extentParams.getCurrentParam());
130     }
131
132     public static Ipv6Classifier buildValidIpv6Classifier() {
133         return new Ipv6ClassifierBuilder().setSrcIp6(new Ipv6Prefix("2001:4978:030d:1000:0:0:0:0/64"))
134                 .setSrcPortStart(new PortNumber(7000))
135                 .setSrcPortEnd(new PortNumber((7005)))
136                 .setDstIp6(new Ipv6Prefix("2001:4978:030d:1100:0:0:0:0/64"))
137                 .setDstPortStart(new PortNumber(7000))
138                 .setDstPortEnd(new PortNumber(7005))
139                 .setFlowLabel(101L)
140                 .setNextHdr(new TpProtocol(256))
141                 .setTcHigh(new TosByte((short) 0xc0))
142                 .setTcLow(new TosByte((short) 0x01))
143                 .setTcMask(new TosByte((short) 0xe0))
144                 .build();
145     }
146 }