1 package org.opendaylight.groupbasedpolicy.resolver;
3 import java.util.Arrays;
4 import java.util.Collection;
6 import org.junit.Assert;
7 import org.junit.Before;
9 import org.mockito.Mockito;
10 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
11 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
12 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
13 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
14 import org.opendaylight.groupbasedpolicy.test.CustomDataBrokerTest;
15 import org.opendaylight.groupbasedpolicy.util.IidFactory;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.Forwarding;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.forwarding.ForwardingByTenant;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.forwarding.ForwardingByTenantBuilder;
20 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
22 import com.google.common.base.Optional;
24 public class ForwardingResolverTest extends CustomDataBrokerTest {
26 private static final TenantId TENANT_ID_1 = new TenantId("tenant_1");
28 private ForwardingResolver fwdResolver;
32 fwdResolver = new ForwardingResolver(getDataBroker());
36 public Collection<Class<?>> getClassesFromModules() {
37 return Arrays.asList(Forwarding.class);
41 public void testOnWrite() throws Exception {
42 ForwardingByTenant forwardingByTenant = new ForwardingByTenantBuilder().setTenantId(TENANT_ID_1).build();
43 DataObjectModification<ForwardingByTenant> domMock = Mockito.mock(DataObjectModification.class);
44 Mockito.when(domMock.getDataAfter()).thenReturn(forwardingByTenant);
45 InstanceIdentifier<ForwardingByTenant> forwardingByTenantIid = IidFactory.forwardingByTenantIid(TENANT_ID_1);
46 fwdResolver.onWrite(domMock, forwardingByTenantIid);
48 ReadOnlyTransaction rTx = getDataBroker().newReadOnlyTransaction();
49 Optional<ForwardingByTenant> potenatialFwdByTenant =
50 rTx.read(LogicalDatastoreType.OPERATIONAL, forwardingByTenantIid).get();
51 Assert.assertTrue(potenatialFwdByTenant.isPresent());
52 Assert.assertEquals(forwardingByTenant, potenatialFwdByTenant.get());
56 public void testOnSubtreeModified() throws Exception {
57 ForwardingByTenant forwardingByTenant = new ForwardingByTenantBuilder().setTenantId(TENANT_ID_1).build();
58 DataObjectModification<ForwardingByTenant> domMock = Mockito.mock(DataObjectModification.class);
59 Mockito.when(domMock.getDataAfter()).thenReturn(forwardingByTenant);
60 InstanceIdentifier<ForwardingByTenant> forwardingByTenantIid = IidFactory.forwardingByTenantIid(TENANT_ID_1);
61 fwdResolver.onSubtreeModified(domMock, forwardingByTenantIid);
63 ReadOnlyTransaction rTx = getDataBroker().newReadOnlyTransaction();
64 Optional<ForwardingByTenant> potenatialFwdByTenant =
65 rTx.read(LogicalDatastoreType.OPERATIONAL, forwardingByTenantIid).get();
66 Assert.assertTrue(potenatialFwdByTenant.isPresent());
67 Assert.assertEquals(forwardingByTenant, potenatialFwdByTenant.get());
71 public void testOnDelete() throws Exception {
72 ForwardingByTenant forwardingByTenant = new ForwardingByTenantBuilder().setTenantId(TENANT_ID_1).build();
73 InstanceIdentifier<ForwardingByTenant> forwardingByTenantIid = IidFactory.forwardingByTenantIid(TENANT_ID_1);
74 WriteTransaction wTx = getDataBroker().newWriteOnlyTransaction();
75 wTx.put(LogicalDatastoreType.OPERATIONAL, forwardingByTenantIid, forwardingByTenant);
77 ReadOnlyTransaction rTx = getDataBroker().newReadOnlyTransaction();
78 Optional<ForwardingByTenant> potenatialFwdByTenant =
79 rTx.read(LogicalDatastoreType.OPERATIONAL, forwardingByTenantIid).get();
80 Assert.assertTrue(potenatialFwdByTenant.isPresent());
81 fwdResolver.onDelete(null, forwardingByTenantIid);
83 rTx = getDataBroker().newReadOnlyTransaction();
84 potenatialFwdByTenant = rTx.read(LogicalDatastoreType.OPERATIONAL, forwardingByTenantIid).get();
85 Assert.assertFalse(potenatialFwdByTenant.isPresent());
89 public void testUpdateForwarding() throws Exception {
90 ForwardingByTenant forwardingByTenant = new ForwardingByTenantBuilder().setTenantId(TENANT_ID_1).build();
91 InstanceIdentifier<ForwardingByTenant> forwardingByTenantIid = IidFactory.forwardingByTenantIid(TENANT_ID_1);
92 fwdResolver.updateForwarding(forwardingByTenantIid, forwardingByTenant);
94 ReadOnlyTransaction rTx = getDataBroker().newReadOnlyTransaction();
95 Optional<ForwardingByTenant> potenatialFwdByTenant =
96 rTx.read(LogicalDatastoreType.OPERATIONAL, forwardingByTenantIid).get();
97 Assert.assertTrue(potenatialFwdByTenant.isPresent());
98 Assert.assertEquals(forwardingByTenant, potenatialFwdByTenant.get());