public void CreateInstance_Non_Http_Message_Throws()
 {
     MockService1 instance = new MockService1();
     InstanceContext context = new InstanceContext(instance);
     IInstanceProvider provider = new MockHttpMessageInstanceProvider();
     Message message = Message.CreateMessage(MessageVersion.None, "notUsed");
     ExceptionAssert.ThrowsInvalidOperation(
         "WCF message without inner http message should throw",
         () =>
         {
             provider.GetInstance(context, message);
         });
 }
 public void CreateInstance_Null_Message_Throws()
 {
     MockService1 instance = new MockService1();
     InstanceContext context = new InstanceContext(instance);
     IInstanceProvider provider = new MockHttpMessageInstanceProvider();
     Message message = null;
     ExceptionAssert.ThrowsArgumentNull(
         "Null message should throw",
         "message",
         () =>
         {
             provider.GetInstance(context, message);
         });
 }
 public void CreateInstance_Null_InstanceContext_Throws()
 {
     MockService1 instance = new MockService1();
     InstanceContext context = null;
     IInstanceProvider provider = new MockHttpMessageInstanceProvider();
     Message message = new HttpRequestMessage().ToMessage();
     ExceptionAssert.ThrowsArgumentNull(
         "Null instance context should throw",
         "instanceContext",
         () =>
         {
             provider.GetInstance(context, message);
         });
 }
        public void CreateInstance_Non_Http_Message_Throws()
        {
            MockService1      instance = new MockService1();
            InstanceContext   context  = new InstanceContext(instance);
            IInstanceProvider provider = new MockHttpMessageInstanceProvider();
            Message           message  = Message.CreateMessage(MessageVersion.None, "notUsed");

            ExceptionAssert.ThrowsInvalidOperation(
                "WCF message without inner http message should throw",
                () =>
            {
                provider.GetInstance(context, message);
            });
        }
        public void CreateInstance_Allows_Null_Instance()
        {
            MockService1 instance = new MockService1();
            InstanceContext context = new InstanceContext(instance);
            Message message = new HttpRequestMessage().ToMessage();

            IInstanceProvider provider = new MockHttpMessageInstanceProvider()
            {
                OnGetInstance = (ctx, msg) => { return null; }
            };

            object returnedInstance = provider.GetInstance(context, message);
            Assert.IsNull(returnedInstance, "Instance provider should have returned a null instance");
            Assert.IsTrue(((MockHttpMessageInstanceProvider)provider).WasGetInstanceCalled, "GetInstance in derived class was not called");
        }
        public void CreateInstance_Null_Message_Throws()
        {
            MockService1      instance = new MockService1();
            InstanceContext   context  = new InstanceContext(instance);
            IInstanceProvider provider = new MockHttpMessageInstanceProvider();
            Message           message  = null;

            ExceptionAssert.ThrowsArgumentNull(
                "Null message should throw",
                "message",
                () =>
            {
                provider.GetInstance(context, message);
            });
        }
        public void CreateInstance_Null_InstanceContext_Throws()
        {
            MockService1      instance = new MockService1();
            InstanceContext   context  = null;
            IInstanceProvider provider = new MockHttpMessageInstanceProvider();
            Message           message  = new HttpRequestMessage().ToMessage();

            ExceptionAssert.ThrowsArgumentNull(
                "Null instance context should throw",
                "instanceContext",
                () =>
            {
                provider.GetInstance(context, message);
            });
        }
        public void CreateInstance_Allows_Null_Instance()
        {
            MockService1    instance = new MockService1();
            InstanceContext context  = new InstanceContext(instance);
            Message         message  = new HttpRequestMessage().ToMessage();

            IInstanceProvider provider = new MockHttpMessageInstanceProvider()
            {
                OnGetInstance = (ctx, msg) => { return(null); }
            };

            object returnedInstance = provider.GetInstance(context, message);

            Assert.IsNull(returnedInstance, "Instance provider should have returned a null instance");
            Assert.IsTrue(((MockHttpMessageInstanceProvider)provider).WasGetInstanceCalled, "GetInstance in derived class was not called");
        }
        public void CreateInstance_Returns_Custom_Instance()
        {
            MockService1      instance = new MockService1();
            InstanceContext   context  = new InstanceContext(instance);
            Message           message  = new HttpRequestMessage().ToMessage();
            IInstanceProvider provider = new MockHttpMessageInstanceProvider()
            {
                OnGetInstance = (ctx, msg) =>
                {
                    return(instance);
                }
            };

            object returnedInstance = provider.GetInstance(context, message);

            Assert.AreEqual(instance, returnedInstance, "Instance provider should have returned the same instance we provided to the mock");
            Assert.IsTrue(((MockHttpMessageInstanceProvider)provider).WasGetInstanceCalled, "GetInstance in derived class was not called");
        }
        public void CreateInstance_Returns_Custom_Instance()
        {
            MockService1 instance = new MockService1();
            InstanceContext context = new InstanceContext(instance);
            Message message = new HttpRequestMessage().ToMessage();
            IInstanceProvider provider = new MockHttpMessageInstanceProvider()
            {
                OnGetInstance = (ctx, msg) =>
                {
                    return instance;
                }
            };

            object returnedInstance = provider.GetInstance(context, message);
            Assert.AreEqual(instance, returnedInstance, "Instance provider should have returned the same instance we provided to the mock");
            Assert.IsTrue(((MockHttpMessageInstanceProvider)provider).WasGetInstanceCalled, "GetInstance in derived class was not called");
        }