import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.util.HashMap;
import java.util.concurrent.ScheduledExecutorService;
import org.junit.Before;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.groupbasedpolicy.endpoint.EpKey;
+import org.opendaylight.groupbasedpolicy.dto.EgKey;
+import org.opendaylight.groupbasedpolicy.dto.EpKey;
import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.endpoint.EndpointManager;
import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.node.SwitchManager;
-import org.opendaylight.groupbasedpolicy.resolver.ActionInstanceValidator;
-import org.opendaylight.groupbasedpolicy.resolver.EgKey;
-import org.opendaylight.groupbasedpolicy.resolver.PolicyResolver;
-import org.opendaylight.groupbasedpolicy.resolver.PolicyScope;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2ContextId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import com.google.common.base.Optional;
import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.ListenableFuture;
public class PolicyManagerTest {
// constant values used by the tested class implementation
private static final short TABLEID_PORTSECURITY = 0;
- private static final short TABLEID_INGRESS_NAT = 1;
+ private static final short TABLEID_INGRESS_NAT = 1;
private static final short TABLEID_SOURCE_MAPPER = 2;
private static final short TABLEID_DESTINATION_MAPPER = 3;
private static final short TABLEID_POLICY_ENFORCER = 4;
private PolicyManager manager;
private DataBroker dataBroker;
- private PolicyResolver policyResolver;
private SwitchManager switchManager;
- private EndpointManager endpointManager;
- private RpcProviderRegistry rpcRegistry;
- private ScheduledExecutorService executor;
private short tableOffset;
- private WriteTransaction writeTransaction;
private ReadWriteTransaction readWriteTransaction;
private NodeId nodeId;
private short tableId;
private Flow flow;
- private PolicyScope policyScope;
-
@Before
public void setUp() {
+ EndpointManager endpointManager = mock(EndpointManager.class);
+ ScheduledExecutorService executor = mock(ScheduledExecutorService.class);
dataBroker = mock(DataBroker.class);
- policyResolver = mock(PolicyResolver.class);
switchManager = mock(SwitchManager.class);
- endpointManager = mock(EndpointManager.class);
- rpcRegistry = mock(RpcProviderRegistry.class);
- executor = mock(ScheduledExecutorService.class);
tableOffset = 5;
- policyScope = mock(PolicyScope.class);
- when(policyResolver.registerListener(any(PolicyManager.class))).thenReturn(policyScope);
-
- writeTransaction = mock(WriteTransaction.class);
+ WriteTransaction writeTransaction = mock(WriteTransaction.class);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
readWriteTransaction = mock(ReadWriteTransaction.class);
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
- manager = new PolicyManager(dataBroker, policyResolver, switchManager,
- endpointManager, rpcRegistry, executor, tableOffset);
+ manager = new PolicyManager(dataBroker, switchManager,
+ endpointManager, executor, tableOffset);
nodeId = mock(NodeId.class);
tableId = 5;
flow = mock(Flow.class);
}
- @SuppressWarnings("unchecked")
- @Test
- public void constructorTest() {
- WriteTransaction ctorWriteTransaction = mock(WriteTransaction.class);
- when(dataBroker.newWriteOnlyTransaction()).thenReturn(ctorWriteTransaction);
- PolicyResolver ctorPolicyResolver = mock(PolicyResolver.class);
- doNothing().when(ctorWriteTransaction).put(any(LogicalDatastoreType.class),
- any(InstanceIdentifier.class), any(SubjectFeatureDefinitions.class));
- PolicyManager ctorPolicyManager = new PolicyManager(dataBroker, ctorPolicyResolver,
- switchManager, endpointManager, rpcRegistry, executor, tableOffset);
- verify(ctorPolicyResolver, atLeastOnce()).registerActionDefinitions(any(ActionDefinitionId.class),
- any(ActionInstanceValidator.class));
- verify(ctorWriteTransaction).put(any(LogicalDatastoreType.class),
- any(InstanceIdentifier.class), any(SubjectFeatureDefinitions.class));
- verify(ctorWriteTransaction).submit();
- }
-
@SuppressWarnings("unchecked")
@Test
public void flowMapTestAddition() throws Exception {
CheckedFuture<Void, TransactionCommitFailedException> submitFuture = mock(CheckedFuture.class);
when(readWriteTransaction.submit()).thenReturn(submitFuture);
- flowMap.commitToDataStore(dataBroker);
+ flowMap.commitToDataStore(dataBroker, new HashMap<InstanceIdentifier<Table>, TableBuilder>());
InOrder orderCheck = inOrder(readWriteTransaction);
- orderCheck.verify(readWriteTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
orderCheck.verify(readWriteTransaction).put(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
any(Flow.class), any(Boolean.class));
orderCheck.verify(readWriteTransaction).submit();
@Test
public void changeOpenFlowTableOffsetTest() throws Exception {
short tableOffset = 3;
- assertTrue(manager.changeOpenFlowTableOffset(tableOffset) instanceof ListenableFuture<?>);
+ assertTrue(manager.changeOpenFlowTableOffset(tableOffset) != null);
verify(switchManager, times(7)).getReadySwitches();
}
EpKey epKey = new EpKey(
new L2ContextId("10fdfde9-c0f2-412d-822d-59d38711bde8"),
new MacAddress("24:77:03:D8:E9:B4"));
- doNothing().when(policyScope).addToScope(eq(egKey.getTenantId()), eq(egKey.getEgId()));
- manager.groupEndpointUpdated(egKey, epKey);
- verify(policyScope).addToScope(eq(egKey.getTenantId()), eq(egKey.getEgId()));
+ // TODO finish this test
}
@Test