2 * Copyright (c) 2015 CableLabs and others. All rights reserved.
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
9 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
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;
26 @Params.AlwaysUseParams
27 public class Ipv6ClassifierValidatorTest {
30 public Params<Validator.Extent> extentParams = Params.of(Validator.Extent.class);
32 private final Ipv6ClassifierValidator validator = new Ipv6ClassifierValidator();
34 @Test(expected = ValidationException.class)
35 public void nullIpv6Classifier() throws ValidationException {
36 validator.validate(null, extentParams.getCurrentParam());
39 @Test(expected = NullPointerException.class)
40 public void nullExtent() throws ValidationException {
41 validator.validate(buildValidIpv6Classifier(), null);
45 public void nullSrcIp6() throws ValidationException {
46 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcIp6(null).build();
48 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
52 public void nullSrcPortStart() throws ValidationException {
53 Ipv6Classifier ipv6Classifier =
54 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcPortStart(null).build();
56 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
60 public void nullSrcPortEnd() throws ValidationException {
61 Ipv6Classifier ipv6Classifier =
62 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcPortEnd(null).build();
64 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
68 public void nullDstIp6() throws ValidationException {
69 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstIp6(null).build();
71 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
75 public void nullDstPortStart() throws ValidationException {
76 Ipv6Classifier ipv6Classifier =
77 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstPortStart(null).build();
79 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
83 public void nullDstPortEnd() throws ValidationException {
84 Ipv6Classifier ipv6Classifier =
85 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstPortEnd(null).build();
87 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
91 public void nullFlowLabel() throws ValidationException {
92 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setFlowLabel(null).build();
94 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
98 public void nullNextHdr() throws ValidationException {
99 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setNextHdr(null).build();
101 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
105 public void nullTcHigh() throws ValidationException {
106 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcHigh(null).build();
108 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
112 public void nullTcLow() throws ValidationException {
113 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcLow(null).build();
115 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
119 public void nullTcMask() throws ValidationException {
120 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcMask(null).build();
122 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
126 public void valid() throws ValidationException {
127 Ipv6Classifier ipv6Classifier = buildValidIpv6Classifier();
129 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
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))
140 .setNextHdr(new TpProtocol(256))
141 .setTcHigh(new TosByte((short) 0xc0))
142 .setTcLow(new TosByte((short) 0x01))
143 .setTcMask(new TosByte((short) 0xe0))