/// <inheritdoc /> protected override HElement GetElement(SessionData sessionData) { clientImplementation = WebServiceHandler.CurrentServiceHandler.Instance.GetRequesterService <TestWebService>(); serverImplementation = serverWebServiceHandler.GetLocalService <TestWebService>(); clientImplementation.CallSomethingVoid(); Logger.LogInformation(clientImplementation.CallSomethingReturn()); clientImplementation.CallSomethingParamsVoid("hello"); Logger.LogInformation(clientImplementation.CallSomethingParamsReturn("LamestWebserver")); clientImplementation.CallSomethingDefaultParamsVoid(""); Logger.LogInformation(clientImplementation.CallSomethingDefaultParamsReturn("CallSomethingDefaultParamsReturn: Correct Output.")); try { clientImplementation.ExceptVoid(); Logger.LogExcept("THIS SHOULD NOT BE THROWN."); } catch (RemoteException e) { Logger.LogError(e.SafeToString()); } try { clientImplementation.ExceptReturn(); Logger.LogExcept("THIS SHOULD NOT BE THROWN."); } catch (RemoteException e) { Logger.LogError(e.SafeToString()); } return(MainPage.GetPage(new List <HElement>() { new HHeadline("LamestWebserver WebServices"), new HText("This response runs various methods of a Test WebService. Look at the Logger output for this file to get a propper understanding of the WebService functions, that were actually executed."), new HHeadline("Executed Functions", 2), new HTable(from field in serverImplementation.GetType().GetFields() where field.DeclaringType == typeof(TestWebService) && field.FieldType == typeof(bool)select new List <object> { field.Name, ((bool)field.GetValue(serverImplementation)) ? "✔️" : "❌" }) }, nameof(Tut06) + ".cs")); }
public void TestWebServices() { WebServiceHandler serverWebServiceHandler = new WebServiceHandler(); TestWebService clientImplementation = WebServiceHandler.CurrentServiceHandler.Instance.GetRequesterService <TestWebService>(); TestWebService serverImplementation = serverWebServiceHandler.GetLocalService <TestWebService>(); using (WebServiceServer webServiceServer = new WebServiceServer(serverWebServiceHandler)) { WebServiceHandler.CurrentServiceHandler.Instance.AssignRemoteEndpointToType(typeof(TestWebService), new IPEndPoint((from addr in Dns.GetHostEntry(Dns.GetHostName()).AddressList where addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork select addr).First(), webServiceServer.Port)); clientImplementation.CallSomethingVoid(); Assert.AreEqual(nameof(clientImplementation.CallSomethingReturn), clientImplementation.CallSomethingReturn()); clientImplementation.CallSomethingParamsVoid(nameof(clientImplementation.CallSomethingParamsVoid)); Assert.AreEqual(nameof(TestWebService), clientImplementation.CallSomethingParamsReturn(nameof(clientImplementation.CallSomethingParamsReturn))); clientImplementation.CallSomethingDefaultParamsVoid(nameof(clientImplementation.CallSomethingDefaultParamsVoid)); Assert.AreEqual(nameof(TestWebService), clientImplementation.CallSomethingDefaultParamsReturn(nameof(clientImplementation.CallSomethingDefaultParamsReturn))); try { clientImplementation.ExceptVoid(); Assert.Fail(); } catch (RemoteException e) { Assert.IsTrue(e.InnerException is RemoteException); } try { clientImplementation.ExceptReturn(); Assert.Fail(); } catch (RemoteException e) { Assert.IsTrue(e.InnerException is RemoteException); } } Assert.IsTrue(serverImplementation.Constructor); Assert.IsTrue(clientImplementation.Constructor); // Yes, true. We have to inherit from the constructor. Assert.IsTrue(serverImplementation.VoidMethod); Assert.IsFalse(clientImplementation.VoidMethod); Assert.IsTrue(serverImplementation.VoidMethodWithParameters); Assert.IsFalse(clientImplementation.VoidMethodWithParameters); Assert.IsTrue(serverImplementation.ReturningMethod); Assert.IsFalse(clientImplementation.ReturningMethod); Assert.IsTrue(serverImplementation.ReturningMethodWithParameters); Assert.IsFalse(clientImplementation.ReturningMethodWithParameters); Assert.IsTrue(serverImplementation.ExceptionMethodVoid); Assert.IsFalse(clientImplementation.ExceptionMethodVoid); Assert.IsTrue(serverImplementation.ReturningExceptionMethod); Assert.IsFalse(clientImplementation.ReturningExceptionMethod); Assert.IsTrue(serverImplementation.VoidMethodWithDefaultParameters); Assert.IsFalse(clientImplementation.VoidMethodWithDefaultParameters); Assert.IsTrue(serverImplementation.ReturningMethodWithDefaultParameters); Assert.IsFalse(clientImplementation.ReturningMethodWithDefaultParameters); }