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"); }
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"); }
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); } }
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) { } }
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"); }
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) { } }
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). }
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) { } }
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); }
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"); }
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"); }
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). }
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) { } }
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"); }