/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.groupbasedpolicy.resolver; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.groupbasedpolicy.dto.ConditionGroup; import org.opendaylight.groupbasedpolicy.dto.ConditionSet; import org.opendaylight.groupbasedpolicy.dto.EgKey; import org.opendaylight.groupbasedpolicy.dto.Policy; import org.opendaylight.groupbasedpolicy.dto.PolicyInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ConditionName; import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; public class PolicyInfoTest { private PolicyInfo policyInfo; private Table<EgKey, EgKey, Policy> policyMap; private EgKey consEgKey; private EgKey provEgKey; private Policy policy; private Map<EgKey, Set<ConditionSet>> egConditions; private Set<ConditionSet> conditionSets; private EgKey condEgKey; private ConditionSet conditionSet; @Before public void init() { consEgKey = mock(EgKey.class); provEgKey = mock(EgKey.class); policy = mock(Policy.class); policyMap = HashBasedTable.create(); policyMap.put(consEgKey, provEgKey, policy); conditionSet = mock(ConditionSet.class); conditionSets = new HashSet<>(Collections.singletonList(conditionSet)); egConditions = new HashMap<>(); condEgKey = mock(EgKey.class); egConditions.put(condEgKey, conditionSets); policyInfo = new PolicyInfo(policyMap, egConditions); } @Test public void testConstructor() { Assert.assertEquals(policyMap, policyInfo.getPolicyMap()); Assert.assertEquals(policy, policyInfo.getPolicy(consEgKey, provEgKey)); Assert.assertEquals(Policy.EMPTY, policyInfo.getPolicy(provEgKey, consEgKey)); Assert.assertEquals(conditionSets, policyInfo.getEgConditions(condEgKey)); } @Test public void testGetEgCondGroup() { List<ConditionName> conditions = Collections.emptyList(); ConditionGroup conditionGroup; when(conditionSet.matches(conditions)).thenReturn(false); conditionGroup = policyInfo.getEgCondGroup(condEgKey, conditions); Assert.assertEquals(ConditionGroup.EMPTY, conditionGroup); when(conditionSet.matches(conditions)).thenReturn(true); conditionGroup = policyInfo.getEgCondGroup(condEgKey, conditions); Assert.assertTrue(conditionGroup.contains(conditionSet)); } @Test public void testGetPeers() { Set<EgKey> peers; peers = policyInfo.getPeers(consEgKey); Assert.assertTrue(peers.contains(provEgKey)); peers = policyInfo.getPeers(provEgKey); Assert.assertTrue(peers.contains(consEgKey)); } }