Пример #1
0
        public void GetHandler_OneWrapper_ShouldBeReturnCorrectHandlerMethod()
        {
            Action <Planet> action  = Console.WriteLine;
            var             wrapper = new JsonDataWrapper <Planet>();

            binder.Using(wrapper);
            binder.Bind <Planet>(1, action);

            var actualHandlerInfo = binder.GetHandler(1);

            Assert.AreEqual(action.Method, actualHandlerInfo.Method);
        }
Пример #2
0
        public void Bind_NoWrapper_BindShouldBeBindActionTwiceAndMore()
        {
            Action <Planet> action  = Console.WriteLine;
            var             wrapper = new JsonDataWrapper <Planet>();

            binder.Using(wrapper);

            Assert.DoesNotThrow(() => binder.Bind <Planet>(1, action));
            Assert.DoesNotThrow(() => binder.Bind <Planet>(1, (Action)TestActionForThisContext));
            Assert.DoesNotThrow(() => binder.Bind <Planet>(1, action));
            Assert.DoesNotThrow(() => binder.Bind <Planet>(1, (Action)TestActionForThisContext));
        }
Пример #3
0
        public void GetWrapper_OneWrapper_ShouldBeReturnCorrectWrapper()
        {
            Action <Planet> action  = Console.WriteLine;
            var             wrapper = new JsonDataWrapper <Planet>();

            binder.Using(wrapper);
            binder.Bind <Planet>(1, action);

            var actualWrapperInfo = binder.GetWrapper(1);

            Assert.AreEqual(typeof(Planet), actualWrapperInfo.Type);
            Assert.AreEqual(wrapper, actualWrapperInfo.DataWrapper);
        }
Пример #4
0
        public void Bind_OneWrapper_PossibleToMemoryLeakOnReBind()
        {
            var wrapper = new JsonDataWrapper <Planet>();

            binder.Using(wrapper);

            var memoryBefore = GC.GetTotalMemory(true);

            for (var i = 0; i < 10000000; ++i)
            {
                new SomeBindWorker(binder);
            }
            var memoryAfter = GC.GetTotalMemory(true);

            var diff = memoryAfter / (double)memoryBefore;

            diff.Should().BeInRange(0, 1.5);
        }
Пример #5
0
        public void Server_ShouldBeAcceptJsonDataFromClient()
        {
            var wrapper = new JsonDataWrapper <Planet>();

            server.UsingWrapper(wrapper);
            client.UsingWrapper(wrapper);

            var obj = new Planet()
            {
                Name = "Earth", Radius = 6378.1, Creatures = 349653671
            };
            Planet receivedObject = null;

            server.Bind <Planet>(1, (c, value) =>
            {
                receivedObject = value;
            });

            client.Send(1, obj);

            Thread.Sleep(MillisecondsToWaitForTransfer * 10);
            receivedObject.Should().BeEquivalentTo(obj);
        }