Exemplo n.º 1
0
        public void MessageFormatterSupportsRaw()
        {
            // serializing reply
            var ms    = new MemoryStream();
            var bytes = new byte [] { 0, 1, 2, 0xFF };

            ms.Write(bytes, 0, bytes.Length);
            ms.Position = 0;
            var cd        = ContractDescription.GetContract(typeof(ITestService));
            var od        = cd.Operations [0];
            var se        = new ServiceEndpoint(cd, new WebHttpBinding(), new EndpointAddress("http://localhost:37564/"));
            var formatter = new WebHttpBehaviorExt().DoGetReplyDispatchFormatter(od, se);

            var msg = formatter.SerializeReply(MessageVersion.None, null, ms);
            var wp  = msg.Properties ["WebBodyFormatMessageProperty"] as WebBodyFormatMessageProperty;

            Assert.IsNotNull(wp, "#1");
            Assert.AreEqual(WebContentFormat.Raw, wp.Format, "#2");

            var wmebe = new WebMessageEncodingBindingElement();
            var wme   = wmebe.CreateMessageEncoderFactory().Encoder;
            var ms2   = new MemoryStream();

            wme.WriteMessage(msg, ms2);
            Assert.AreEqual(bytes, ms2.ToArray(), "#3");
        }
Exemplo n.º 2
0
        public void GetMessageFormatters()
        {
            var se = CreateEndpoint();
            var od = se.Contract.Operations [0];
            var b  = new WebHttpBehaviorExt();

            Assert.IsNotNull(b.DoGetRequestClientFormatter(od, se), "#1");
            Assert.IsNotNull(b.DoGetReplyClientFormatter(od, se), "#2");
            Assert.IsNotNull(b.DoGetRequestDispatchFormatter(od, se), "#3");
            Assert.IsNotNull(b.DoGetReplyDispatchFormatter(od, se), "#4");
        }
Exemplo n.º 3
0
        public void MultipleParameters()
        {
            var behavior = new WebHttpBehaviorExt();
            var cd       = ContractDescription.GetContract(typeof(IMultipleParameters));
            var se       = new ServiceEndpoint(cd, new WebHttpBinding(), new EndpointAddress("http://localhost:8080/"));

            behavior.Validate(se);

            foreach (var od in cd.Operations)
            {
                behavior.DoGetRequestClientFormatter(od, se);
            }
        }
Exemplo n.º 4
0
        public void MultipleParameters2()
        {
            var behavior = new WebHttpBehaviorExt();
            var cd       = ContractDescription.GetContract(typeof(IMultipleParametersGet));
            var se       = new ServiceEndpoint(cd, new WebHttpBinding(), new EndpointAddress("http://localhost:8080/"));

            behavior.Validate(se);

            try {
                foreach (var od in cd.Operations)
                {
                    behavior.DoGetRequestClientFormatter(od, se);
                }
                Assert.Fail("Should result in invalid operation");
            } catch (InvalidOperationException) {
            }
        }
Exemplo n.º 5
0
        public void MessageFormatterSupportsRaw2()
        {
            // deserializing request
            var ms = new MemoryStream();

            ms.Write(new byte [] { 0, 1, 2, 0xFF }, 0, 4);
            ms.Position = 0;
            var cd        = ContractDescription.GetContract(typeof(ITestService));
            var od        = cd.Operations [0];
            var se        = new ServiceEndpoint(cd, new WebHttpBinding(), new EndpointAddress("http://localhost:8080/"));
            var wmebe     = new WebMessageEncodingBindingElement();
            var wme       = wmebe.CreateMessageEncoderFactory().Encoder;
            var msg       = wme.ReadMessage(ms, 100, null); // "application/xml" causes error.
            var formatter = new WebHttpBehaviorExt().DoGetRequestDispatchFormatter(od, se);

            object [] pars = new object [1];
            formatter.DeserializeRequest(msg, pars);
            Assert.IsTrue(pars [0] is Stream, "ret");
        }
Exemplo n.º 6
0
        public void RequestClientFormatter()
        {
            var se  = CreateEndpoint();
            var od  = se.Contract.Operations [0];
            var b   = new WebHttpBehaviorExt();
            var rcf = b.DoGetRequestClientFormatter(od, se);
            var msg = rcf.SerializeRequest(MessageVersion.None, new object [] { "foo" });
            var hp  = msg.Properties [HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;

            Assert.IsNotNull(hp, "#1");
            Assert.IsTrue(msg.IsEmpty, "#2");
            Assert.AreEqual(String.Empty, hp.QueryString, "#3");
            var mb = msg.CreateBufferedCopy(1000);

            try {
                rcf.DeserializeReply(mb.CreateMessage(), new object [0]);
                Assert.Fail("It should not support reply deserialization");
            } catch (NotSupportedException) {
            }
        }
Exemplo n.º 7
0
        public void RequestClientFormatter2()
        {
            var se = CreateEndpoint();
            var od = se.Contract.Operations [0];
            var b  = new WebHttpBehaviorExt();
            IClientMessageFormatter rcf = null;

            b.ApplyClientBehaviorInvoked += delegate(ServiceEndpoint e, ClientRuntime cr) {
                rcf = cr.Operations [0].Formatter;
            };
            se.Behaviors.Add(b);
            var ch  = new WebChannelFactory <IMyServiceClient> (se).CreateChannel();
            var msg = rcf.SerializeRequest(MessageVersion.None, new object [] { "foo" });
            var hp  = msg.Properties [HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;

            Assert.IsNotNull(hp, "#1");
            Assert.IsTrue(msg.IsEmpty, "#2");
            Assert.AreEqual(String.Empty, hp.QueryString, "#3");
            //var mb = msg.CreateBufferedCopy (1000);

            // TODO: test DeserializeReply too (it is supported unlike above).
        }
Exemplo n.º 8
0
		public void MultipleParameters2 ()
		{
			var behavior = new WebHttpBehaviorExt ();
			var cd = ContractDescription.GetContract (typeof (IMultipleParametersGet));
			var se = new ServiceEndpoint (cd, new WebHttpBinding (), new EndpointAddress ("http://localhost:8080/"));
			behavior.Validate (se);

			try {
				foreach (var od in cd.Operations)
					behavior.DoGetRequestClientFormatter (od, se);
				Assert.Fail ("Should result in invalid operation");
			} catch (InvalidOperationException) {
			}
		}
Exemplo n.º 9
0
		public void MultipleParameters ()
		{
			var behavior = new WebHttpBehaviorExt ();
			var cd = ContractDescription.GetContract (typeof (IMultipleParameters));
			var se = new ServiceEndpoint (cd, new WebHttpBinding (), new EndpointAddress ("http://localhost:8080/"));
			behavior.Validate (se);

			foreach (var od in cd.Operations)
				behavior.DoGetRequestClientFormatter (od, se);
		}
Exemplo n.º 10
0
		public void MessageFormatterSupportsRaw2 ()
		{
			// deserializing request
			var ms = new MemoryStream ();
			ms.Write (new byte [] {0, 1, 2, 0xFF}, 0, 4);
			ms.Position = 0;
			var cd = ContractDescription.GetContract (typeof (ITestService));
			var od = cd.Operations [0];
			var se = new ServiceEndpoint (cd, new WebHttpBinding (), new EndpointAddress ("http://localhost:8080/"));
			var wmebe = new WebMessageEncodingBindingElement ();
			var wme = wmebe.CreateMessageEncoderFactory ().Encoder;
			var msg = wme.ReadMessage (ms, 100, null); // "application/xml" causes error.
			var formatter = new WebHttpBehaviorExt ().DoGetRequestDispatchFormatter (od, se);
			object [] pars = new object [1];
			formatter.DeserializeRequest (msg, pars);
			Assert.IsTrue (pars [0] is Stream, "ret");
		}
Exemplo n.º 11
0
		public void MessageFormatterSupportsRaw ()
		{
			// serializing reply
			var ms = new MemoryStream ();
			var bytes = new byte [] {0, 1, 2, 0xFF};
			ms.Write (bytes, 0, bytes.Length);
			ms.Position = 0;
			var cd = ContractDescription.GetContract (typeof (ITestService));
			var od = cd.Operations [0];
			var se = new ServiceEndpoint (cd, new WebHttpBinding (), new EndpointAddress ("http://localhost:37564/"));
			var formatter = new WebHttpBehaviorExt ().DoGetReplyDispatchFormatter (od, se);

			var msg = formatter.SerializeReply (MessageVersion.None, null, ms);
			var wp = msg.Properties ["WebBodyFormatMessageProperty"] as WebBodyFormatMessageProperty;
			Assert.IsNotNull (wp, "#1");
			Assert.AreEqual (WebContentFormat.Raw, wp.Format, "#2");

			var wmebe = new WebMessageEncodingBindingElement ();
			var wme = wmebe.CreateMessageEncoderFactory ().Encoder;
			var ms2 = new MemoryStream ();
			wme.WriteMessage (msg, ms2);
			Assert.AreEqual (bytes, ms2.ToArray (), "#3");
		}
Exemplo n.º 12
0
		public void RequestClientFormatter2 ()
		{
			var se = CreateEndpoint ();
			var od = se.Contract.Operations [0];
			var b = new WebHttpBehaviorExt ();
			IClientMessageFormatter rcf = null;
			b.ApplyClientBehaviorInvoked += delegate (ServiceEndpoint e, ClientRuntime cr) {
				rcf = cr.Operations [0].Formatter;
			};
			se.Behaviors.Add (b);
			var ch = new WebChannelFactory<IMyServiceClient> (se).CreateChannel ();
			var msg = rcf.SerializeRequest (MessageVersion.None, new object [] {"foo"});
			var hp = msg.Properties [HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;
			Assert.IsNotNull (hp, "#1");
			Assert.IsTrue (msg.IsEmpty, "#2");
			Assert.AreEqual (String.Empty, hp.QueryString, "#3");
			//var mb = msg.CreateBufferedCopy (1000);

			// TODO: test DeserializeReply too (it is supported unlike above).
		}
Exemplo n.º 13
0
		public void RequestClientFormatter ()
		{
			var se = CreateEndpoint ();
			var od = se.Contract.Operations [0];
			var b = new WebHttpBehaviorExt ();
			var rcf = b.DoGetRequestClientFormatter (od, se);
			var msg = rcf.SerializeRequest (MessageVersion.None, new object [] {"foo"});
			var hp = msg.Properties [HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;
			Assert.IsNotNull (hp, "#1");
			Assert.IsTrue (msg.IsEmpty, "#2");
			Assert.AreEqual (String.Empty, hp.QueryString, "#3");
			var mb = msg.CreateBufferedCopy (1000);
			try {
				rcf.DeserializeReply (mb.CreateMessage (), new object [0]);
				Assert.Fail ("It should not support reply deserialization");
			} catch (NotSupportedException) {
			}
		}
Exemplo n.º 14
0
		public void GetMessageFormatters ()
		{
			var se = CreateEndpoint ();
			var od = se.Contract.Operations [0];
			var b = new WebHttpBehaviorExt ();
			Assert.IsNotNull (b.DoGetRequestClientFormatter (od, se), "#1");
			Assert.IsNotNull (b.DoGetReplyClientFormatter (od, se), "#2");
			Assert.IsNotNull (b.DoGetRequestDispatchFormatter (od, se), "#3");
			Assert.IsNotNull (b.DoGetReplyDispatchFormatter (od, se), "#4");
		}