public void GetWorkerFor_constructor_passed_function_is_called()
        {
            var factory = new TypeMappedResponderWorkerFactory
            {
                DefaultFunc = m => { throw new InvalidOperationException(); }
            };

            Assert.Throws <InvalidOperationException>(() => factory.GetWorkerFor(new TestMessage()));
        }
        public void GetWorkerFor_constructor_passed_function_is_called()
        {
            var factory = new TypeMappedResponderWorkerFactory
            {
                DefaultFunc = m => { throw new InvalidOperationException(); }
            };

            Assert.Throws<InvalidOperationException>(() => factory.GetWorkerFor(new TestMessage()));
        }
        public void Map_typed_request_message()
        {
            Func <TestMessage, IMessage> echoFunc = m => new TestMessage("response");
            var factory = new TypeMappedResponderWorkerFactory();

            factory.Map(echoFunc);

            var requestMessage = new TestMessage();
            var response       = factory.GetWorkerFor(requestMessage).GetResponse(requestMessage, null);

            Assert.AreEqual("response", ((TestMessage)response).Text);
        }
        public void Map_untyped_ResponderWorker_for_message_with_MessageTypeId_65536()
        {
            Func <IMessage, IMessage> echoFunc = m => new TestMessage("response");
            var factory = new TypeMappedResponderWorkerFactory();

            factory.Map <CustomMessage>(new ResponderWorker(echoFunc));

            var requestMessage = new CustomMessage();
            var response       = factory.GetWorkerFor(requestMessage).GetResponse(requestMessage, null);

            Assert.IsNotNull(response);
        }
        public void Map_typed_request_message()
        {
            Func<TestMessage, IMessage> echoFunc = m => new TestMessage("response");
            var factory = new TypeMappedResponderWorkerFactory();

            factory.Map(echoFunc);

            var requestMessage = new TestMessage();
            var response = factory.GetWorkerFor(requestMessage).GetResponse(requestMessage, null);

            Assert.AreEqual("response", ((TestMessage)response).Text);
        }
        public void Map_untyped_ResponderWorker_for_message_with_MessageTypeId_65536()
        {
            Func<IMessage, IMessage> echoFunc = m => new TestMessage("response");
            var factory = new TypeMappedResponderWorkerFactory();

            factory.Map<CustomMessage>(new ResponderWorker(echoFunc));

            var requestMessage = new CustomMessage();
            var response = factory.GetWorkerFor(requestMessage).GetResponse(requestMessage, null);

            Assert.IsNotNull(response);
        }