818281e6c2028861720219e689b4c02090a95c67
[groupbasedpolicy.git] / groupbasedpolicy / src / test / java / org / opendaylight / groupbasedpolicy / resolver / validator / PolicyValidatorTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. 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.groupbasedpolicy.resolver.validator;
10
11 import static org.mockito.Mockito.mock;
12 import static org.mockito.Mockito.when;
13
14 import org.junit.Assert;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.opendaylight.groupbasedpolicy.resolver.PolicyResolver;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.Tenant;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.SubjectFeatureInstances;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstance;
21 import org.opendaylight.yangtools.yang.binding.DataContainer;
22
23 public class PolicyValidatorTest {
24
25     DataContainer dataContainer;
26     PolicyResolver policyResolver;
27
28     @Before
29     public void initialise() {
30         dataContainer = mock(DataContainer.class);
31         policyResolver = mock(PolicyResolver.class);
32
33     }
34
35     @SuppressWarnings({"rawtypes", "unchecked"})
36     @Test
37     public void createValidatorTest() {
38         Validator validator;
39         validator = PolicyValidator.createValidator(dataContainer, policyResolver);
40         Assert.assertNull(validator);
41
42         when(dataContainer.getImplementedInterface()).thenReturn((Class) Tenant.class);
43         validator = PolicyValidator.createValidator(dataContainer, policyResolver);
44         Assert.assertNotNull(validator);
45         Assert.assertEquals(policyResolver, ((AbstractValidator) validator).getPolicyResolver());
46
47         when(dataContainer.getImplementedInterface()).thenReturn((Class) SubjectFeatureInstances.class);
48         validator = PolicyValidator.createValidator(dataContainer, policyResolver);
49         Assert.assertNotNull(validator);
50         Assert.assertEquals(policyResolver, ((AbstractValidator) validator).getPolicyResolver());
51
52         when(dataContainer.getImplementedInterface()).thenReturn((Class) ActionInstance.class);
53         validator = PolicyValidator.createValidator(dataContainer, policyResolver);
54         Assert.assertNotNull(validator);
55         Assert.assertEquals(policyResolver, ((AbstractValidator) validator).getPolicyResolver());
56     }
57
58     @SuppressWarnings({"unchecked", "rawtypes"})
59     @Test
60     public void validateTest() {
61         Tenant tenant = mock(Tenant.class);
62         when(tenant.getImplementedInterface()).thenReturn((Class) Tenant.class);
63         SubjectFeatureInstances subjectFeatureInstances = mock(SubjectFeatureInstances.class);
64         when(tenant.getSubjectFeatureInstances()).thenReturn(subjectFeatureInstances);
65         PolicyValidator.validate(tenant, policyResolver);
66
67         when(subjectFeatureInstances.getImplementedInterface()).thenReturn((Class) SubjectFeatureInstances.class);
68         PolicyValidator.validate(subjectFeatureInstances, policyResolver);
69
70         ActionInstance actionInstance = mock(ActionInstance.class);
71         when(actionInstance.getImplementedInterface()).thenReturn((Class) ActionInstance.class);
72         PolicyValidator.validate(actionInstance, policyResolver);
73     }
74
75 }