/// <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"));
        }
Beispiel #2
0
        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);
        }