GBP core tests improvements
[groupbasedpolicy.git] / groupbasedpolicy / src / test / java / org / opendaylight / groupbasedpolicy / sf / ClassifierInstanceValidatorTest.java
1 package org.opendaylight.groupbasedpolicy.sf;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
5 import static org.junit.Assert.assertTrue;
6
7 import java.util.List;
8
9 import com.google.common.collect.ImmutableList;
10 import org.junit.Before;
11 import org.junit.Test;
12 import org.opendaylight.groupbasedpolicy.dto.ValidationResultBuilder;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstanceBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.RendererName;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.has.parameters.type.parameter.type.IntBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedClassifierDefinition;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedClassifierDefinitionBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.classifier.definition.SupportedParameterValues;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.classifier.definition.SupportedParameterValuesBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.supported._int.value.fields.SupportedIntValueInRangeBuilder;
25
26 public class ClassifierInstanceValidatorTest {
27
28     private static final String RENDERER = "renderer";
29     private static final String PARENT_CLASSIFIER_DEFINITION_ID = "cdId-0";
30     private static final String CLASSIFIER_DEFINITION_ID = "cdId-1";
31     private static final String PARAM_NAME = "param_name";
32     private static final String CLASSIFIER1 = "classifier1";
33     private ClassifierDefinitionId cdId;
34     private ClassifierDefinitionId parentCdId;
35     private List<SupportedParameterValues> supportedParameterValues;
36
37     @Before
38     public void init() {
39         cdId = new ClassifierDefinitionId(CLASSIFIER_DEFINITION_ID);
40         parentCdId = new ClassifierDefinitionId(PARENT_CLASSIFIER_DEFINITION_ID);
41         supportedParameterValues =
42                 ImmutableList.of(
43                         new SupportedParameterValuesBuilder().setParameterName(new ParameterName(PARAM_NAME))
44                             .setParameterType(new IntBuilder()
45                                 .setSupportedIntValueInRange(ImmutableList
46                                     .of(new SupportedIntValueInRangeBuilder().setMin(0l).setMax(1000l).build()))
47                                 .build())
48                             .build());
49     }
50
51     @Test
52     public void testConstructor() {
53
54         SupportedClassifierDefinition constraint = new SupportedClassifierDefinitionBuilder()
55             .setClassifierDefinitionId(cdId)
56             .setParentClassifierDefinitionId(parentCdId)
57             .setSupportedParameterValues(supportedParameterValues)
58             .build();
59         RendererName rendererName = new RendererName(RENDERER);
60
61         ClassifierInstanceValidator validator = new ClassifierInstanceValidator(constraint, rendererName);
62
63         assertEquals(CLASSIFIER_DEFINITION_ID, validator.getClassifierDefinitionId().getValue());
64         assertNotNull(validator.getParentClassifierDefinitionId());
65         assertEquals(PARENT_CLASSIFIER_DEFINITION_ID, validator.getParentClassifierDefinitionId().getValue());
66         assertEquals(RENDERER, validator.getRendererName().getValue());
67         assertEquals(supportedParameterValues.size(), validator.getSupportedParameters().size());
68     }
69
70     @Test
71     public void testConstructor_noSupportedParameters() {
72
73         SupportedClassifierDefinition constraint = new SupportedClassifierDefinitionBuilder()
74             .setClassifierDefinitionId(cdId).setParentClassifierDefinitionId(parentCdId).build();
75         RendererName rendererName = new RendererName(RENDERER);
76
77         ClassifierInstanceValidator validator = new ClassifierInstanceValidator(constraint, rendererName);
78
79         assertEquals(CLASSIFIER_DEFINITION_ID, validator.getClassifierDefinitionId().getValue());
80         assertNotNull(validator.getParentClassifierDefinitionId());
81         assertEquals(PARENT_CLASSIFIER_DEFINITION_ID, validator.getParentClassifierDefinitionId().getValue());
82         assertEquals(RENDERER, validator.getRendererName().getValue());
83         assertTrue(validator.getSupportedParameters().isEmpty());
84     }
85
86     @Test
87     public void testValidate() {
88         ClassifierInstanceBuilder ciBuilder = new ClassifierInstanceBuilder();
89         ciBuilder.setName(new ClassifierName(CLASSIFIER1));
90         ciBuilder.setParameterValue(ImmutableList
91             .of(new ParameterValueBuilder().setName(new ParameterName(PARAM_NAME)).setIntValue(100l).build()));
92
93         SupportedClassifierDefinition constraint = new SupportedClassifierDefinitionBuilder()
94             .setClassifierDefinitionId(cdId)
95             .setParentClassifierDefinitionId(parentCdId)
96             .setSupportedParameterValues(supportedParameterValues)
97             .build();
98         RendererName rendererName = new RendererName(RENDERER);
99
100         ClassifierInstanceValidator validator = new ClassifierInstanceValidator(constraint, rendererName);
101
102         assertEquals(new ValidationResultBuilder().success().build(), validator.validate(ciBuilder.build()));
103     }
104
105 }