Added support for priority in all classifiers
[packetcable.git] / packetcable-policy-server / src / test / java / org / opendaylight / controller / packetcable / provider / validation / DataValidatorTest.java
1 /*
2  * Copyright (c) 2015 CableLabs and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.controller.packetcable.provider.validation;
10
11 import static org.hamcrest.CoreMatchers.is;
12 import static org.hamcrest.CoreMatchers.not;
13 import static org.hamcrest.MatcherAssert.assertThat;
14 import static org.hamcrest.core.IsNull.nullValue;
15 import static org.mockito.Matchers.any;
16 import static org.mockito.Mockito.doReturn;
17 import static org.mockito.Mockito.doThrow;
18 import static org.mockito.Mockito.mock;
19
20 import com.google.common.collect.Maps;
21 import java.util.Map;
22 import org.junit.Test;
23 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps.CcapValidatorTest;
24 import org.opendaylight.yang.gen.v1.urn.packetcable.rev161107.ccaps.Ccap;
25 import org.opendaylight.yangtools.yang.binding.DataObject;
26 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
27
28 /**
29  * @author rvail
30  */
31 public class DataValidatorTest {
32
33     @Test
34     public void badData() throws ValidationException {
35         final ValidatorProvider validatorProvider = mock(ValidatorProvider.class);
36
37         doThrow(new ValidationException("unit-test-exception"))
38                 .when(validatorProvider)
39                 .validate(any(Class.class), any(Ccap.class), any(Validator.Extent.class));
40
41
42         final Ccap ccap = mock(Ccap.class);
43         doReturn(Ccap.class)
44                 .when(ccap)
45                 .getImplementedInterface();
46
47
48         DataValidator dataValidator = new DataValidator(validatorProvider);
49
50
51         Map<InstanceIdentifier<?>, DataObject> dataMap = Maps.newHashMap();
52         InstanceIdentifier iid = mock(InstanceIdentifier.class);
53         dataMap.put(iid, ccap);
54
55         Map<InstanceIdentifier<?>, ValidationException> validationMap = dataValidator.validate(dataMap, Validator.Extent.NODE_ONLY);
56
57         assertThat(validationMap, is(not(nullValue())));
58         assertThat(validationMap.size(), is(1));
59         assertThat(validationMap.containsKey(iid), is(true));
60         ValidationException ex = validationMap.get(iid);
61         assertThat(ex, is(not(nullValue())));
62
63     }
64
65     @Test
66     public void validCcap() {
67         final ValidatorProvider validatorProvider = mock(ValidatorProvider.class);
68
69         Map<InstanceIdentifier<?>, DataObject> dataMap = Maps.newHashMap();
70         InstanceIdentifier iid = mock(InstanceIdentifier.class);
71         dataMap.put(iid, CcapValidatorTest.buildValidCcapTree());
72
73         final DataValidator dataValidator = new DataValidator(validatorProvider);
74         Map<InstanceIdentifier<?>, ValidationException> validationMap = dataValidator.validate(dataMap, Validator.Extent.NODE_ONLY);
75
76         assertThat(validationMap.isEmpty(), is(true));
77
78     }
79
80     @Test
81     public void validCcapExplictTyping() {
82         final ValidatorProvider validatorProvider = mock(ValidatorProvider.class);
83
84         Map<InstanceIdentifier<Ccap>, Ccap> dataMap = Maps.newHashMap();
85         InstanceIdentifier<Ccap> iid = mock(InstanceIdentifier.class);
86         dataMap.put(iid, CcapValidatorTest.buildValidCcapTree());
87
88         final DataValidator dataValidator = new DataValidator(validatorProvider);
89         Map<InstanceIdentifier<Ccap>, ValidationException> validationMap = dataValidator.validateOneType(dataMap,
90                 Validator.Extent.NODE_ONLY);
91
92         assertThat(validationMap.isEmpty(), is(true));
93
94     }
95
96 }