package org.opennaas.extensions.router.junos.actionssets.actions.test.bgp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import junit.framework.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.opennaas.core.protocols.sessionmanager.ProtocolSessionManager; import org.opennaas.core.resources.action.ActionException; import org.opennaas.core.resources.helpers.XmlHelper; import org.opennaas.extensions.router.capability.bgp.BGPModelFactory; import org.opennaas.extensions.router.junos.actionssets.ActionConstants; import org.opennaas.extensions.router.junos.actionssets.actions.bgp.ConfigureBGPAction; import org.opennaas.extensions.router.junos.actionssets.actions.test.ActionTestHelper; import org.opennaas.extensions.router.model.ComputerSystem; public class ConfigureBGPActionTest { private static ConfigureBGPAction action; private static ActionTestHelper helper; private static ProtocolSessionManager protocolsessionmanager; private static final String BGP_v4_PROPERTIES_FILE = "/actions/bgp_v4.properties"; private static final String BGP_v6_PROPERTIES_FILE = "/actions/bgp_v6.properties"; @BeforeClass public static void init() throws IOException { action = new ConfigureBGPAction(); action.setModelToUpdate(new ComputerSystem()); helper = new ActionTestHelper(); protocolsessionmanager = helper.getProtocolSessionManager(); } @Test public void actionIDTest() { Assert.assertEquals("Wrong ActionID", ActionConstants.CONFIGURE_BGP, action.getActionID()); } @Test public void velocityMessageTestIpv4() throws ActionException { try { ComputerSystem bgpConfig = getBGPConfigurationIPv4(); Assert.assertTrue(action.checkParams(bgpConfig)); action.setParams(bgpConfig); action.prepareMessage(); String configBGPMessage = action.prepareConfigBGPMessage(); String configPolicyOptionsMessage = action.prepareConfigPolicyOptionsMessage(); String expectedBGPMessage = XmlHelper.formatXML(textFileToString("/actions/bgpConfig_bgp_v4.xml")); Assert.assertEquals(expectedBGPMessage, XmlHelper.formatXML(configBGPMessage)); String expectedPolicyOptionsMessage = XmlHelper.formatXML(textFileToString("/actions/bgpConfig_policies_v4.xml")); Assert.assertEquals(expectedPolicyOptionsMessage, XmlHelper.formatXML(configPolicyOptionsMessage)); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } @Test public void velocityMessageTestIpv6() throws ActionException { try { ComputerSystem bgpConfig = getBGPConfigurationIPv6(); Assert.assertTrue(action.checkParams(bgpConfig)); action.setParams(bgpConfig); action.prepareMessage(); String configBGPMessage = action.prepareConfigBGPMessage(); String configPolicyOptionsMessage = action.prepareConfigPolicyOptionsMessage(); String expectedBGPMessage = XmlHelper.formatXML(textFileToString("/actions/bgpConfig_bgp_v6.xml")); Assert.assertEquals(expectedBGPMessage, XmlHelper.formatXML(configBGPMessage)); String expectedPolicyOptionsMessage = XmlHelper.formatXML(textFileToString("/actions/bgpConfig_policies_v6.xml")); Assert.assertEquals(expectedPolicyOptionsMessage, XmlHelper.formatXML(configPolicyOptionsMessage)); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } private String textFileToString(String fileLocation) throws IOException { String fileString = ""; BufferedReader br = new BufferedReader( new InputStreamReader(getClass().getResourceAsStream(fileLocation))); String line; while ((line = br.readLine()) != null) { fileString += line; } br.close(); return fileString; } private ComputerSystem getBGPConfigurationIPv4() throws IOException { BGPModelFactory factory = new BGPModelFactory(getClass().getResourceAsStream(BGP_v4_PROPERTIES_FILE)); return factory.createRouterWithBGP(); } private ComputerSystem getBGPConfigurationIPv6() throws IOException { BGPModelFactory factory = new BGPModelFactory(getClass().getResourceAsStream(BGP_v6_PROPERTIES_FILE)); return factory.createRouterWithBGP(); } }