public void GetShouldFireEvents() { BamServer server; SecureServiceProxyClient <Echo> sspc; ServiceProxyTestHelpers.StartTestServerGetEchoClient(out server, out sspc); bool?firedIngEvent = false; bool?firedEdEvent = false; sspc.Getting += (s, a) => { firedIngEvent = true; }; sspc.Got += (s, a) => { firedEdEvent = true; }; try { sspc.Get("TestStringParameter", new object[] { "monkey" }); // array forces resolution to the correct method } catch (Exception ex) { server.Stop(); Expect.Fail(ex.Message); } server.Stop(); Expect.IsTrue(firedIngEvent.Value, "Getting event didn't fire"); Expect.IsTrue(firedEdEvent.Value, "Got event didn't fire"); }
public void GetShouldBeCancelable() { BamServer server; SecureServiceProxyClient <Echo> sspc; ServiceProxyTestHelpers.StartTestServerGetEchoClient(out server, out sspc); bool?firedIngEvent = false; bool?firedEdEvent = false; sspc.Getting += (s, a) => { firedIngEvent = true; a.CancelInvoke = true; // should cancel the call }; sspc.Got += (s, a) => { firedEdEvent = true; }; try { sspc.Get("TestStringParameter", new object[] { "monkey" }); } catch (Exception ex) { server.Stop(); Expect.Fail(ex.Message); } server.Stop(); Expect.IsTrue(firedIngEvent.Value, "Getting didn't fire"); Expect.IsFalse(firedEdEvent.Value, "Got fired but should not have"); }
public void SecureServiceProxyInvokeWithInvalidTokenShouldFail() { CleanUp(); BamServer server; SecureChannel.Debug = true; SecureServiceProxyClient <ApiKeyRequiredEcho> sspc; ServiceProxyTestHelpers.StartSecureChannelTestServerGetApiKeyRequiredEchoClient(out server, out sspc); string value = "InputValue_".RandomLetters(8); bool? thrown = false; sspc.InvocationException += (client, ex) => { thrown = true; }; ApiKeyResolver resolver = new ApiKeyResolver(new InvalidKeyProvider()); sspc.ApiKeyResolver = resolver; string result = sspc.Invoke <string>("Send", new object[] { value }); Expect.IsTrue(thrown.Value); CleanUp(); }
public void StartSession() { BamServer server; SecureServiceProxyClient <Echo> sspc; ServiceProxyTestHelpers.StartSecureChannelTestServerGetEchoClient(out server, out sspc); sspc.StartSession(); server.Stop(); }
public void SecureServiceProxyInvokeShouldSucceed() { BamServer server; SecureServiceProxyClient <Echo> sspc; ServiceProxyTestHelpers.StartSecureChannelTestServerGetEchoClient(out server, out sspc); string value = "InputValue_".RandomLetters(8); string result = sspc.Invoke <string>("Send", new object[] { value }); server.Stop(); Expect.AreEqual(value, result); }
public void SecureServiceProxyInvokeShouldFireSessionStarting() { BamServer server; SecureServiceProxyClient <Echo> sspc; ServiceProxyTestHelpers.StartSecureChannelTestServerGetEchoClient(out server, out sspc); bool?sessionStartingCalled = false; sspc.SessionStarting += (c) => { sessionStartingCalled = true; }; sspc.Invoke <string>("Send", new object[] { "banana" }); server.Stop(); Expect.IsTrue(sessionStartingCalled.Value, "SessionStarting did not fire"); }
public void SecureServiceProxyInvokeWithApiKeyShouldSucceed() { CleanUp(); string methodName = MethodBase.GetCurrentMethod().Name; BamServer server; SecureChannel.Debug = true; string baseAddress; ServiceProxyTestHelpers.CreateServer(out baseAddress, out server); ServiceProxyTestHelpers.Servers.Add(server); // makes sure it gets stopped after test run SecureServiceProxyClient <ApiKeyRequiredEcho> sspc = new SecureServiceProxyClient <ApiKeyRequiredEcho>(baseAddress); IApplicationNameProvider nameProvider = new TestApplicationNameProvider(methodName); IApiKeyProvider keyProvider = new LocalApiKeyProvider(); ApiKeyResolver keyResolver = new ApiKeyResolver(keyProvider, nameProvider); SecureChannel channel = new SecureChannel(); channel.ApiKeyResolver = keyResolver; server.AddCommonService <SecureChannel>(channel); server.AddCommonService <ApiKeyRequiredEcho>(); server.Start(); string value = "InputValue_".RandomLetters(8); bool? thrown = false; sspc.InvocationException += (client, ex) => { thrown = true; }; sspc.ApiKeyResolver = keyResolver; string result = sspc.Invoke <string>("Send", new object[] { value }); Expect.IsFalse(thrown.Value, "Exception was thrown"); Expect.AreEqual(value, result); CleanUp(); }
public void SecureServiceProxyInvokeShouldEstablishSessionIfSecureChannelServerRegistered() { BamServer server; SecureServiceProxyClient <Echo> sspc; ServiceProxyTestHelpers.StartSecureChannelTestServerGetEchoClient(out server, out sspc); Expect.IsFalse(sspc.SessionEstablished); string value = "InputValue_".RandomLetters(8); string result = sspc.Invoke <string>("Send", new object[] { value }); server.Stop(); string msg = sspc.SessionStartException != null ? sspc.SessionStartException.Message : string.Empty; Expect.IsNull(sspc.SessionStartException, "SessionStartException: {0}"._Format(msg)); Expect.IsTrue(sspc.SessionEstablished, "Session was not established"); server.Stop(); }
public void ShouldBeAbleToDownloadAndCompileCSharpProxy() { BamServer server; SecureServiceProxyClient <EncryptedEcho> sspc; ServiceProxyTestHelpers.StartSecureChannelTestServerGetEncryptedEchoClient(out server, out sspc); string value = Http.Get("http://localhost:8080/ServiceProxy/CSharpProxies?namespace=My.Test.Namespace&classes=EncryptedEcho"); FileInfo codeFile = new FileInfo(".\\Tmp\\code.cs"); if (codeFile.Directory.Exists) { codeFile.Directory.Delete(true); } codeFile.Directory.Create(); value.SafeWriteToFile(codeFile.FullName, true); List <string> referenceAssemblies = new List <string>(DaoGenerator.DefaultReferenceAssemblies); referenceAssemblies.Add(typeof(ServiceProxyClient).Assembly.GetFileInfo().FullName); referenceAssemblies.Add(typeof(BamServer).Assembly.GetFileInfo().FullName); CompilerResults results = AdHocCSharpCompiler.CompileDirectories(new DirectoryInfo[] { codeFile.Directory }, ".\\Tmp\\TestClients.dll", referenceAssemblies.ToArray(), false); if (results.Errors.Count > 0) { StringBuilder message = new StringBuilder(); foreach (CompilerError err in results.Errors) { message.AppendLine(string.Format("File=>{0}\r\n{1}:::Line {2}, Column {3}::{4}", err.FileName, err.ErrorNumber, err.Line, err.Column, err.ErrorText)); } OutLine(message.ToString(), ConsoleColor.Red); } Expect.AreEqual(0, results.Errors.Count); Expect.IsTrue(results.CompiledAssembly.GetFileInfo().Exists); server.Stop(); }
public void StopServersAfterUnitTests() { ServiceProxyTestHelpers.StopServers(); }
public static void ClearAppsAndStopServers() { ClearApps(); ServiceProxyTestHelpers.StopServers(); }