/* * 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.openflowplugin.openflow.md.core.sal.convertor; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Optional; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.Convertor; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder; /** * Test for {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager} */ @RunWith(MockitoJUnitRunner.class) public class ConvertorManagerTest { @Test public void testRegisterConvertor() throws Exception { final ConvertorManager convertorManager = new ConvertorManager(OFConstants.OFP_VERSION_1_3) .registerConvertor(OFConstants.OFP_VERSION_1_3, new Convertor() { @Override public Collection> getTypes() { return Collections.singleton(Action.class); } @Override public String convert(Action source, VersionConvertorData data) { return null; } }); final Optional convertor = convertorManager.findConvertor(OFConstants.OFP_VERSION_1_3, Action.class); assertTrue("Failed to find convertor for action", convertor.isPresent()); } @Test public void testConvert() throws Exception { final ConvertorManager convertorManager = new ConvertorManager(OFConstants.OFP_VERSION_1_3) .registerConvertor(OFConstants.OFP_VERSION_1_3, new Convertor() { @Override public Collection> getTypes() { return Collections.singleton(Action.class); } @Override public String convert(Action source, VersionConvertorData data) { return String.valueOf(source) + String.valueOf(data); } }); final Action source = new ActionBuilder().build(); final VersionConvertorData data = new VersionConvertorData(OFConstants.OFP_VERSION_1_3); final String expectedResult = String.valueOf(source) + String.valueOf(data); final Optional result = convertorManager.convert(source, data); assertTrue("Failed to convert action to string", result.isPresent()); assertEquals("Result and expected result do not match", result.get(), expectedResult); } /** * Test for {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager#convert(java.util.Collection, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.ConvertorData)} * @throws Exception */ @Test public void testConvert1() throws Exception { final ConvertorManager convertorManager = new ConvertorManager(OFConstants.OFP_VERSION_1_3) .registerConvertor(OFConstants.OFP_VERSION_1_3, new Convertor, String, VersionConvertorData>() { @Override public Collection> getTypes() { return Collections.singleton(Action.class); } @Override public String convert(List source, VersionConvertorData data) { return String.valueOf(source) + String.valueOf(data); } }); final List source = Collections.singletonList(new ActionBuilder().build()); final VersionConvertorData data = new VersionConvertorData(OFConstants.OFP_VERSION_1_3); final String expectedResult = String.valueOf(source) + String.valueOf(data); final Optional result = convertorManager.convert(source, data); assertTrue("Failed to convert action to string", result.isPresent()); assertEquals("Result and expected result do not match", result.get(), expectedResult); } }