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.packetcable.rev161017.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
17 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161017.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
18 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161017.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoiceBuilder;
19 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161017.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoice;
20 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161017.classifier.attributes.classifiers.classifier.container.classifier.choice.Ipv6ClassifierChoiceBuilder;
21 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161017.classifier.attributes.classifiers.classifier.container.classifier.choice.QosClassifierChoiceBuilder;
22 import org.opendaylight.yangtools.yang.binding.DataContainer;
27 @Params.AlwaysUseParams
28 public class ClassifierChoiceValidatorTest {
31 public Params<Validator.Extent> extentParams = Params.of(Validator.Extent.class);
33 private final ClassifierChoiceValidator validator = new ClassifierChoiceValidator();
35 @Test(expected = ValidationException.class)
36 public void testNullClassifierChoice() throws ValidationException {
37 validator.validate(null, extentParams.getCurrentParam());
40 @Params.DoNotUseParams
41 @Test(expected = NullPointerException.class)
42 public void testNullExtent() throws ValidationException {
43 validator.validate(buildValidQosClassifierChoice(), null);
46 @Test(expected = IllegalStateException.class)
47 public void testUnknownClassifierChoiceClass() throws ValidationException {
48 ClassifierChoice unknownChoice = new ClassifierChoice() {
50 public Class<? extends DataContainer> getImplementedInterface() {
54 validator.validate(unknownChoice, extentParams.getCurrentParam());
58 public void testValid() throws ValidationException {
59 validator.validate(buildValidQosClassifierChoice(),extentParams.getCurrentParam());
63 public void testValidExt() throws ValidationException {
64 validator.validate(buildValidExtClassifierChoice(), extentParams.getCurrentParam());
68 public void testValidIpv6() throws ValidationException {
69 validator.validate(buildValidIpv6ClassifierChoice(), extentParams.getCurrentParam());
72 public static ClassifierChoice buildValidQosClassifierChoice() {
73 return new QosClassifierChoiceBuilder()
74 .setClassifier(ClassifierValidatorTest.buildValidClassifierTree())
78 public static ExtClassifierChoice buildValidExtClassifierChoice() {
79 return new ExtClassifierChoiceBuilder()
80 .setExtClassifier(ExtClassifierValidatorTest.buildValidExtClassifier())
84 public static Ipv6ClassifierChoice buildValidIpv6ClassifierChoice() {
85 return new Ipv6ClassifierChoiceBuilder()
86 .setIpv6Classifier(Ipv6ClassifierValidatorTest.buildValidIpv6Classifier())