Exemplo n.º 1
0
        public void ObjectHeaderTests()
        {
            Message message = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, "http://www.action.com/");
            GeneratedSerializableObject generatedSerializableObject = new GeneratedSerializableObject(2, 200L);
            MessageHeader header = MessageHeader.CreateHeader("foo", "", generatedSerializableObject);

            message.Headers.Add(header);
            Message message2 = MessageTestUtilities.SendAndReceiveMessage(message);
            int     num      = message2.Headers.FindHeader("foo", "");

            Assert.NotEqual(-1, num);

            object header2 = message2.Headers.GetHeader <GeneratedSerializableObject>(num);
            object header3 = message2.Headers.GetHeader <GeneratedSerializableObject>("foo", "");

            Assert.False(!generatedSerializableObject.Equals(header2) || !generatedSerializableObject.Equals(header3));

            string s = "<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://schemas.xmlsoap.org/ws/2003/03/addressing\"><s:Header /><s:Body /></s:Envelope>";

            message  = Message.CreateMessage(new XmlTextReader(new StringReader(s)), 2147483647, MessageVersion.Default);
            message2 = Message.CreateMessage(new XmlTextReader(new StringReader(s)), 2147483647, MessageVersion.Default);
            Message two = MessageTestUtilities.SendAndReceiveMessage(message);

            Assert.True(MessageTestUtilities.AreBodiesEqual(message2, two));
        }
Exemplo n.º 2
0
        public void RunBasicFaultTest()
        {
            for
            (
                MessageVersion version = MessageVersion.Soap11;
                version != null;
                version = (version == MessageVersion.Soap11) ? MessageVersion.Soap12WSAddressing10 : null
            )
            {
                var translations = new List <FaultReasonText>
                {
                    new FaultReasonText("Reason: auto-generated fault for testing.", "en-us"),
                    new FaultReasonText("Raison: auto-generat error pour examiner.", "fr")
                };

                var    reason = new FaultReason(translations);
                object detail = "Sample fault detail content.";

                MessageFault fault   = MessageFault.CreateFault(new FaultCode("Sender"), reason, detail, new System.Runtime.Serialization.DataContractSerializer(typeof(string)), "", "");
                Message      message = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, fault, "http://www.w3.org/2005/08/addressing/fault");
                Message      m2      = MessageTestUtilities.SendAndReceiveMessage(message);
                MessageFault f2      = MessageFault.CreateFault(m2, int.MaxValue);

                IsFaultEqual(fault, f2);
            }
        }
Exemplo n.º 3
0
        public void BodyWriterMessageTest()
        {
            string  action = "http://www.action.com/";
            Message m1     = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, action, new CustomGeneratedBodyWriter(2, 1024));
            Message m1p    = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, action, new CustomGeneratedBodyWriter(2, 1024));

            // Note, m1 is closed by this, which is we compare m2 with m1p
            Message m2 = MessageTestUtilities.SendAndReceiveMessage(m1);

            Assert.True(MessageTestUtilities.AreBodiesEqual(m1p, m2, true, true));
        }
Exemplo n.º 4
0
        public async Task BasicTextTest()
        {
            int bad  = 0;
            int good = 0;

            try
            {
                InterestingMessageSet ims = new InterestingMessageSet();
                Encoding       encoding   = Encoding.UTF8;
                MessageEncoder f          = (new TextMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, encoding)).CreateMessageEncoderFactory().Encoder;

                while (ims.MoveNext())
                {
                    Message myMessage = (Message)ims.Current;
                    var     s         = new MemoryStream();
                    await f.WriteMessageAsync(myMessage, s);

                    s.Seek(0, SeekOrigin.Begin);
                    _ = new StreamReader(s);
                    s.Seek(0, SeekOrigin.Begin);
                    Message m2 = await f.ReadMessageAsync(s, int.MaxValue);

                    // original got closed by sending, so recreate it:
                    myMessage = ims.CurrentParameters.CreateMessage();
                    if (MessageTestUtilities.AreMessagesEqual(myMessage, m2))
                    {
                        good++;
                    }
                    else
                    {
                        bad++;
                    }
                }

                Assert.False(bad > 0, $"Messages not equal! Failure!({bad} bad ones, {good} good ones.)");
            }
            catch (Exception ex)
            {
                Assert.True(false, $"Exception caught: {ex.Message} More information: {bad} bad ones, {good} good ones.");
            }
        }