Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var layer1             = new TestLayer(1);
            var layer2             = new TestLayer(2);
            var layerStackProvider = new LayerStackProvider <PingLayerData>(layer1, layer2);

            SetupAsync(layerStackProvider).GetAwaiter().GetResult();

            Console.Out.WriteLine("Server ready");
            Console.Out.Flush();

            Thread.Sleep(3000);

            if ((NumRequests != NumRequestsExpected) ||
                (NumEvents != NumEventsExpected) ||
                (NumErrors != NumErrorsExpected))
            {
                Console.Out.WriteLine("Server failed: Did not receive all expected messages");
                Console.Out.Flush();
                return;
            }

            if ((layer1.NumReached == 0) ||
                (layer1.NumError != 0) ||
                (layer2.NumReached == 0) ||
                (layer2.NumError != 0))
            {
                Console.Out.WriteLine("Server failed: Problem with layers");
                Console.Out.Flush();
                return;
            }

            Console.Out.WriteLine("Server completed");
            Console.Out.Flush();
        }
Ejemplo n.º 2
0
        public void RemoveLayer_RemovesLayerFromList()
        {
            var layer = new TestLayer();

            _target.PushLayer(layer);
            _target.RemoveLayer(layer);

            _target.Update(0);

            Assert.IsFalse(layer.UpdateCalled);
        }
Ejemplo n.º 3
0
        public void PushLayer_AddsNewLayerToList()
        {
            var layer = new TestLayer();

            _target.PushLayer(layer);

            _target.Update(0);

            Assert.IsTrue(layer.UpdateCalled);
            Assert.IsTrue(layer.RenderCalled);
        }
Ejemplo n.º 4
0
        public void RemoveLayerT_RemovesFirstLayerOfType()
        {
            var layer = new TestLayer();

            _target.PushLayer(layer);
            _target.RemoveLayer <TestLayer>();

            _target.Update(0);

            Assert.IsFalse(layer.UpdateCalled);
        }
Ejemplo n.º 5
0
        public void PushLayerT_AddsNewLayerOfTypeToList()
        {
            var layer = new TestLayer();

            _mockFactory.Setup(_ => _.Create <TestLayer>()).Returns(layer);
            _target.PushLayer <TestLayer>();

            _target.Update(0);

            Assert.IsTrue(layer.UpdateCalled);
            Assert.IsTrue(layer.RenderCalled);
        }
Ejemplo n.º 6
0
        public void Update_OnlyUpdatesUnPausedLayers()
        {
            var layer = new TestLayer {
                Paused = true
            };

            _target.PushLayer(layer);

            _target.Update(0);

            Assert.IsFalse(layer.UpdateCalled);
            Assert.IsTrue(layer.RenderCalled);
        }
Ejemplo n.º 7
0
        public void SetLayerOrder_OrdersAndCreatesLayers()
        {
            var layer1 = new TestLayer();
            var layer2 = new TestLayer2();

            _mockFactory.Setup(_ => _.Create <ILayer>(typeof(TestLayer))).Returns(layer1);
            _mockFactory.Setup(_ => _.Create <ILayer>(typeof(TestLayer2))).Returns(layer2);

            _target.SetLayerOrder(typeof(TestLayer), typeof(TestLayer2));
            // Assign new layers
            _target.Update(0);
            // Run update on new layers
            _target.Update(0);

            Assert.IsTrue(layer1.UpdateCalled);
            Assert.IsTrue(layer1.RenderCalled);
            Assert.IsTrue(layer2.UpdateCalled);
            Assert.IsTrue(layer2.RenderCalled);
        }
        static void Main(string[] args)
        {
            var layer1             = new TestLayer(1);
            var layer2             = new TestLayer(2);
            var layerStackProvider = new LayerStackProvider <PingLayerData>(layer1, layer2);

            SetupAsync(layerStackProvider).GetAwaiter().GetResult();

            Console.Out.WriteLine("Server ready");
            Console.Out.Flush();

            bool countdownSet = Countdown.Wait(30000);

            if (!countdownSet ||
                (NumRequestsReceived != (int)PingConstants.NumRequests) ||
                (NumEventsReceived != (int)PingConstants.NumEvents) ||
                (NumErrorsReceived != (int)PingConstants.NumErrors))
            {
                Console.Out.WriteLine("Server failed: Did not receive all expected messages");
                Console.Out.Flush();
                return;
            }

            if ((layer1.NumReached == 0) ||
                (layer1.NumError != 0) ||
                (layer2.NumReached == 0) ||
                (layer2.NumError != 0))
            {
                Console.Out.WriteLine("Server failed: Problem with layers");
                Console.Out.Flush();
                return;
            }

            Console.Out.WriteLine("Server completed");
            Console.Out.Flush();
        }
        static void Main(string[] args)
        {
            Thread.Sleep(1000);

            Console.Out.WriteLine("Start client");
            Console.Out.Flush();

            var layer1             = new TestLayer(1);
            var layer2             = new TestLayer(2);
            var layerStackProvider = new LayerStackProvider <PingLayerData>(layer1, layer2);

            try
            {
                var proxy = SetupProxyAsync(layerStackProvider).GetAwaiter().GetResult();

                for (int i = 0; i < (int)PingConstants.NumRequests; i++)
                {
                    var request = new PingRequest {
                        Payload = "request" + i, Action = PingAction.Identity
                    };
                    var message = DoPingPongAsync(proxy, request).GetAwaiter().GetResult();
                    if (message.IsError)
                    {
                        Console.Out.WriteLine("Error response received: " + message.Error.Deserialize().message);
                        Console.Out.WriteLine("Client failed");
                        Console.Out.Flush();
                        return;
                    }
                    else
                    {
                        string msg = message.Payload.Deserialize().Payload;
                        if (msg != request.Payload)
                        {
                            Console.Out.WriteLine($"Response message did not match request payload: expected \"{request.Payload}\", got \"{msg}\"");
                            Console.Out.WriteLine("Client failed");
                            Console.Out.Flush();
                            return;
                        }
                    }
                }

                for (int i = 0; i < (int)PingConstants.NumEvents; i++)
                {
                    var request = new PingRequest {
                        Payload = "event" + i
                    };
                    DoPingEvent(proxy, request);
                }

                for (int i = 0; i < (int)PingConstants.NumErrors; i++)
                {
                    var request = new PingRequest {
                        Payload = "error" + i, Action = PingAction.Error
                    };
                    var message = DoPingPongAsync(proxy, request).GetAwaiter().GetResult();
                    if (!message.IsError)
                    {
                        Console.Out.WriteLine("Non-error response received: " + message.Payload.Deserialize().Payload);
                        Console.Out.WriteLine("Client failed");
                        Console.Out.Flush();
                        return;
                    }
                    else
                    {
                        string msg = message.Error.Deserialize().message;
                        if (msg != request.Payload)
                        {
                            Console.Out.WriteLine($"Error message did not match request payload: expected \"{request.Payload}\", got \"{msg}\"");
                            Console.Out.WriteLine("Client failed");
                            Console.Out.Flush();
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Out.WriteLine("Exception caught: " + ex.Message);
                Console.Out.Flush();
                return;
            }

            if ((layer1.NumReached == 0) ||
                (layer1.NumError != 0) ||
                (layer2.NumReached == 0) ||
                (layer2.NumError != 0))
            {
                Console.Out.WriteLine("Client failed: Problem with layers");
                Console.Out.Flush();
                return;
            }

            Console.Out.WriteLine("Client succeeded");
            Console.Out.Flush();
        }