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.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.ipv6.classifier.Ipv6Classifier;
22 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.ipv6.classifier.Ipv6ClassifierBuilder;
27 @Params.AlwaysUseParams
28 public class Ipv6ClassifierValidatorTest {
31 public Params<Validator.Extent> extentParams = Params.of(Validator.Extent.class);
33 private final Ipv6ClassifierValidator validator = new Ipv6ClassifierValidator();
35 @Test(expected = ValidationException.class)
36 public void nullIpv6Classifier() throws ValidationException {
37 validator.validate(null, extentParams.getCurrentParam());
40 @Test(expected = NullPointerException.class)
41 public void nullExtent() throws ValidationException {
42 validator.validate(buildValidIpv6Classifier(), null);
46 public void nullSrcIp6() throws ValidationException {
47 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcIp6(null).build();
49 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
53 public void nullSrcPortStart() throws ValidationException {
54 Ipv6Classifier ipv6Classifier =
55 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcPortStart(null).build();
57 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
61 public void nullSrcPortEnd() throws ValidationException {
62 Ipv6Classifier ipv6Classifier =
63 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setSrcPortEnd(null).build();
65 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
69 public void nullDstIp6() throws ValidationException {
70 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstIp6(null).build();
72 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
76 public void nullDstPortStart() throws ValidationException {
77 Ipv6Classifier ipv6Classifier =
78 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstPortStart(null).build();
80 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
84 public void nullDstPortEnd() throws ValidationException {
85 Ipv6Classifier ipv6Classifier =
86 new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setDstPortEnd(null).build();
88 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
92 public void nullFlowLabel() throws ValidationException {
93 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setFlowLabel(null).build();
95 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
99 public void nullNextHdr() throws ValidationException {
100 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setNextHdr(null).build();
102 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
106 public void nullTcHigh() throws ValidationException {
107 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcHigh(null).build();
109 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
113 public void nullTcLow() throws ValidationException {
114 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcLow(null).build();
116 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
120 public void nullTcMask() throws ValidationException {
121 Ipv6Classifier ipv6Classifier = new Ipv6ClassifierBuilder(buildValidIpv6Classifier()).setTcMask(null).build();
123 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
127 public void valid() throws ValidationException {
128 Ipv6Classifier ipv6Classifier = buildValidIpv6Classifier();
130 validator.validate(ipv6Classifier, extentParams.getCurrentParam());
133 public static Ipv6Classifier buildValidIpv6Classifier() {
134 return new Ipv6ClassifierBuilder().setSrcIp6(new Ipv6Prefix("2001:4978:030d:1000:0:0:0:0/64"))
135 .setSrcPortStart(new PortNumber(7000))
136 .setSrcPortEnd(new PortNumber((7005)))
137 .setDstIp6(new Ipv6Prefix("2001:4978:030d:1100:0:0:0:0/64"))
138 .setDstPortStart(new PortNumber(7000))
139 .setDstPortEnd(new PortNumber(7005))
141 .setNextHdr(new TpProtocol(256))
142 .setTcHigh(new TosByte((short) 0xc0))
143 .setTcLow(new TosByte((short) 0x01))
144 .setTcMask(new TosByte((short) 0xe0))
145 .setActivationState(ClassifierActivationState.Active)