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;
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;
20 import com.google.common.collect.Maps;
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.rev151101.ccaps.Ccap;
25 import org.opendaylight.yangtools.yang.binding.DataObject;
26 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
31 public class DataValidatorTest {
34 public void badData() throws ValidationException {
35 final ValidatorProvider validatorProvider = mock(ValidatorProvider.class);
37 doThrow(new ValidationException("unit-test-exception"))
38 .when(validatorProvider)
39 .validate(any(Class.class), any(Ccap.class), any(Validator.Extent.class));
42 final Ccap ccap = mock(Ccap.class);
45 .getImplementedInterface();
48 DataValidator dataValidator = new DataValidator(validatorProvider);
51 Map<InstanceIdentifier<?>, DataObject> dataMap = Maps.newHashMap();
52 InstanceIdentifier iid = mock(InstanceIdentifier.class);
53 dataMap.put(iid, ccap);
55 Map<InstanceIdentifier<?>, ValidationException> validationMap = dataValidator.validate(dataMap, Validator.Extent.NODE_ONLY);
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())));
66 public void validCcap() {
67 final ValidatorProvider validatorProvider = mock(ValidatorProvider.class);
69 Map<InstanceIdentifier<?>, DataObject> dataMap = Maps.newHashMap();
70 InstanceIdentifier iid = mock(InstanceIdentifier.class);
71 dataMap.put(iid, CcapValidatorTest.buildValidCcapTree());
73 final DataValidator dataValidator = new DataValidator(validatorProvider);
74 Map<InstanceIdentifier<?>, ValidationException> validationMap = dataValidator.validate(dataMap, Validator.Extent.NODE_ONLY);
76 assertThat(validationMap.isEmpty(), is(true));
81 public void validCcapExplictTyping() {
82 final ValidatorProvider validatorProvider = mock(ValidatorProvider.class);
84 Map<InstanceIdentifier<Ccap>, Ccap> dataMap = Maps.newHashMap();
85 InstanceIdentifier<Ccap> iid = mock(InstanceIdentifier.class);
86 dataMap.put(iid, CcapValidatorTest.buildValidCcapTree());
88 final DataValidator dataValidator = new DataValidator(validatorProvider);
89 Map<InstanceIdentifier<Ccap>, ValidationException> validationMap = dataValidator.validateOneType(dataMap,
90 Validator.Extent.NODE_ONLY);
92 assertThat(validationMap.isEmpty(), is(true));