1 package org.opendaylight.groupbasedpolicy.sf;
3 import static org.junit.Assert.assertNotNull;
4 import static org.mockito.Matchers.any;
5 import static org.mockito.Matchers.eq;
6 import static org.mockito.Mockito.doNothing;
7 import static org.mockito.Mockito.times;
8 import static org.mockito.Mockito.verify;
9 import static org.mockito.Mockito.when;
11 import com.google.common.util.concurrent.CheckedFuture;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.junit.runner.RunWith;
15 import org.mockito.Mock;
16 import org.mockito.runners.MockitoJUnitRunner;
17 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
18 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
19 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
20 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24 @SuppressWarnings({"unchecked"})
25 @RunWith(MockitoJUnitRunner.class)
26 public class SubjectFeatureDefinitionProviderTest {
28 public static final int NUM_OF_SUBJECT_FEATURE_DEFINITIONS = 5;
31 DataBroker dataProvider;
33 WriteTransaction writeTransaction;
35 CheckedFuture<Void, TransactionCommitFailedException> checkedFuture;
39 when(writeTransaction.submit()).thenReturn(checkedFuture);
40 when(dataProvider.newWriteOnlyTransaction()).thenReturn(writeTransaction);
44 public void testConstructor() throws TransactionCommitFailedException {
45 doNothing().when(writeTransaction).put(eq(LogicalDatastoreType.CONFIGURATION), any(InstanceIdentifier.class),
46 any(SubjectFeatureDefinitions.class));
48 SubjectFeatureDefinitionProvider provider = new SubjectFeatureDefinitionProvider(dataProvider);
50 assertNotNull(provider);
51 verify(dataProvider).newWriteOnlyTransaction();
52 verify(writeTransaction, times(NUM_OF_SUBJECT_FEATURE_DEFINITIONS)).put(eq(LogicalDatastoreType.CONFIGURATION),
53 any(InstanceIdentifier.class), any(SubjectFeatureDefinitions.class));
58 public void testClose() throws Exception {
59 doNothing().when(writeTransaction).delete(eq(LogicalDatastoreType.CONFIGURATION),
60 any(InstanceIdentifier.class));
62 SubjectFeatureDefinitionProvider provider = new SubjectFeatureDefinitionProvider(dataProvider);
64 assertNotNull(provider);
68 verify(dataProvider, times(2)).newWriteOnlyTransaction();
69 verify(writeTransaction, times(NUM_OF_SUBJECT_FEATURE_DEFINITIONS))
70 .delete(eq(LogicalDatastoreType.CONFIGURATION), any(InstanceIdentifier.class));