2 * Copyright (c) 2016 Cisco Systems, Inc. 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
8 package org.opendaylight.groupbasedpolicy.sf;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
14 import java.util.List;
16 import com.google.common.collect.ImmutableList;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.opendaylight.groupbasedpolicy.dto.ValidationResultBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstanceBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.RendererName;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.has.parameters.type.parameter.type.IntBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedClassifierDefinition;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedClassifierDefinitionBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.classifier.definition.SupportedParameterValues;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.classifier.definition.SupportedParameterValuesBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.supported._int.value.fields.SupportedIntValueInRangeBuilder;
33 public class ClassifierInstanceValidatorTest {
35 private static final String RENDERER = "renderer";
36 private static final String PARENT_CLASSIFIER_DEFINITION_ID = "cdId-0";
37 private static final String CLASSIFIER_DEFINITION_ID = "cdId-1";
38 private static final String PARAM_NAME = "param_name";
39 private static final String CLASSIFIER1 = "classifier1";
40 private ClassifierDefinitionId cdId;
41 private ClassifierDefinitionId parentCdId;
42 private List<SupportedParameterValues> supportedParameterValues;
46 cdId = new ClassifierDefinitionId(CLASSIFIER_DEFINITION_ID);
47 parentCdId = new ClassifierDefinitionId(PARENT_CLASSIFIER_DEFINITION_ID);
48 supportedParameterValues =
50 new SupportedParameterValuesBuilder().setParameterName(new ParameterName(PARAM_NAME))
51 .setParameterType(new IntBuilder()
52 .setSupportedIntValueInRange(ImmutableList
53 .of(new SupportedIntValueInRangeBuilder().setMin(0L).setMax(1000L).build()))
59 public void testConstructor() {
61 SupportedClassifierDefinition constraint = new SupportedClassifierDefinitionBuilder()
62 .setClassifierDefinitionId(cdId)
63 .setParentClassifierDefinitionId(parentCdId)
64 .setSupportedParameterValues(supportedParameterValues)
66 RendererName rendererName = new RendererName(RENDERER);
68 ClassifierInstanceValidator validator = new ClassifierInstanceValidator(constraint, rendererName);
70 assertEquals(CLASSIFIER_DEFINITION_ID, validator.getClassifierDefinitionId().getValue());
71 assertNotNull(validator.getParentClassifierDefinitionId());
72 assertEquals(PARENT_CLASSIFIER_DEFINITION_ID, validator.getParentClassifierDefinitionId().getValue());
73 assertEquals(RENDERER, validator.getRendererName().getValue());
74 assertEquals(supportedParameterValues.size(), validator.getSupportedParameters().size());
78 public void testConstructor_noSupportedParameters() {
80 SupportedClassifierDefinition constraint = new SupportedClassifierDefinitionBuilder()
81 .setClassifierDefinitionId(cdId).setParentClassifierDefinitionId(parentCdId).build();
82 RendererName rendererName = new RendererName(RENDERER);
84 ClassifierInstanceValidator validator = new ClassifierInstanceValidator(constraint, rendererName);
86 assertEquals(CLASSIFIER_DEFINITION_ID, validator.getClassifierDefinitionId().getValue());
87 assertNotNull(validator.getParentClassifierDefinitionId());
88 assertEquals(PARENT_CLASSIFIER_DEFINITION_ID, validator.getParentClassifierDefinitionId().getValue());
89 assertEquals(RENDERER, validator.getRendererName().getValue());
90 assertTrue(validator.getSupportedParameters().isEmpty());
94 public void testValidate() {
95 ClassifierInstanceBuilder ciBuilder = new ClassifierInstanceBuilder();
96 ciBuilder.setName(new ClassifierName(CLASSIFIER1));
97 ciBuilder.setParameterValue(ImmutableList
98 .of(new ParameterValueBuilder().setName(new ParameterName(PARAM_NAME)).setIntValue(100L).build()));
100 SupportedClassifierDefinition constraint = new SupportedClassifierDefinitionBuilder()
101 .setClassifierDefinitionId(cdId)
102 .setParentClassifierDefinitionId(parentCdId)
103 .setSupportedParameterValues(supportedParameterValues)
105 RendererName rendererName = new RendererName(RENDERER);
107 ClassifierInstanceValidator validator = new ClassifierInstanceValidator(constraint, rendererName);
109 assertEquals(new ValidationResultBuilder().success().build(), validator.validate(ciBuilder.build()));