package fitnesse.testsystems.slim; import fitnesse.testrunner.WikiPageDescriptor; import fitnesse.testsystems.ConsoleExecutionLogListener; import fitnesse.wiki.PathParser; import fitnesse.wiki.WikiPage; import fitnesse.wiki.WikiPageUtil; import fitnesse.wiki.fs.InMemoryPage; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class SslSlimClientBuilderTest { private WikiPage root; @Before public void setUp() throws Exception { root = InMemoryPage.makeRoot("RooT"); } @Test public void sslParametersCanBeFound() throws ClassNotFoundException { Class.forName("fitnesse.socketservice.SslParametersWiki"); } @Test public void StartAndConnectToSlimClientWithSslAgentWiki() throws Exception { executeAndCheck("fitnesse.socketservice.SslParametersAgent", "fitnesse.socketservice.SslParametersWiki"); } @Test public void StartAndConnectToSlimClientWithoutSsl() throws Exception { executeAndCheck("false", "fitnesse.socketservice.SslParametersWiki"); } @Test public void StartAndConnectToSlimClientWithSslWikiWiki() throws Exception { executeAndCheck("fitnesse.socketservice.SslParametersWiki", "fitnesse.socketservice.SslParametersWiki"); } public void executeAndCheck(String agentParameters, String clientParameters) throws Exception { WikiPage testPage = WikiPageUtil.addPage(root, PathParser.parse("TestPage"), "!define TEST_SYSTEM {slim}\n" + "!define SLIM_PORT {0}\n" + "!define SLIM_SSL {"+ agentParameters +"}\n" + "!define slim.timeout {10}\n" + "!define slim.pool.size {1}\n" + "!define wiki.protocol.ssl.parameter.class {"+ clientParameters + "}\n" ); WikiPageDescriptor descriptor = new WikiPageDescriptor(testPage, false, false, "build/classes/test", "classes"); descriptor.getExecutionLogListener().addExecutionLogListener(new ConsoleExecutionLogListener()); SlimClientBuilder clientBuilder = new SlimClientBuilder(descriptor); String testSystemName = clientBuilder.getTestSystemName(); assertEquals("slim:" + "fitnesse.slim.SlimService", testSystemName); SlimCommandRunningClient client = clientBuilder.build(); boolean isConnected; client.start(); try{ isConnected = client.isConnected(); }finally{ client.bye(); client.kill(); } assertTrue("Got connected to client", isConnected); } }