/*
* Copyright (c) 2016 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.renderer.iovisor.sf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.opendaylight.groupbasedpolicy.api.sf.EtherTypeClassifierDefinition;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.has.parameters.type.ParameterType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.has.parameters.type.parameter.type.Int;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.classifier.definition.SupportedParameterValues;
public class EtherTypeClassifierTest {
@Test
public void testGetId() {
assertEquals(EtherTypeClassifierDefinition.ID, Classifier.ETHER_TYPE_CL.getId());
}
@Test
public void testGetClassifierDefinition() {
assertEquals(EtherTypeClassifierDefinition.DEFINITION, Classifier.ETHER_TYPE_CL.getClassifierDefinition());
}
@Test
public void testGetSupportedParameterValues() {
List<SupportedParameterValues> valuesList = Classifier.ETHER_TYPE_CL.getSupportedParameterValues();
assertEquals(1, valuesList.size());
SupportedParameterValues values = valuesList.get(0);
assertNotNull(values);
assertEquals(EtherTypeClassifierDefinition.ETHERTYPE_PARAM, values.getParameterName().getValue());
ParameterType pt = values.getParameterType();
assertTrue(pt instanceof Int);
}
@Test
public void testCheckPresenceOfRequiredParams() {
Map<String, ParameterValue> params = new HashMap<>();
ParameterValue pv = new ParameterValueBuilder().setIntValue(EtherTypeClassifierDefinition.ARP_VALUE).build();
params.put(EtherTypeClassifierDefinition.ETHERTYPE_PARAM, pv);
try {
Classifier.ETHER_TYPE_CL.checkPresenceOfRequiredParams(params);
} catch (IllegalArgumentException e) {
fail("Required parameter missing");
}
}
@Test(expected = IllegalArgumentException.class)
public void testCheckPresenceOfRequiredParams_noParam() {
Map<String, ParameterValue> params = new HashMap<>();
Classifier.ETHER_TYPE_CL.checkPresenceOfRequiredParams(params);
}
@Test(expected = IllegalArgumentException.class)
public void testCheckPresenceOfRequiredParams_nullValue() {
Map<String, ParameterValue> params = new HashMap<>();
ParameterValue pv = new ParameterValueBuilder().build();
params.put(EtherTypeClassifierDefinition.ETHERTYPE_PARAM, pv);
Classifier.ETHER_TYPE_CL.checkPresenceOfRequiredParams(params);
}
@Test
public void testGetParent() {
assertNull(Classifier.ETHER_TYPE_CL.getParent());
}
}