コード例 #1
0
        public void Can_Negotiate_Tls_Feature()
        {
            XmlElement sentElement      = default;
            bool?      setTlsSend       = default;
            var        featuresResponse = new XmlElement("stream:features", new XmlElement("starttls").Xmlns(XmppNamespaces.Tls));

            HandlersRegistry.RegisterTransmitPipeHandler <XmlElement>(request => sentElement           = request);
            HandlersRegistry.RegisterTransportMessageHandler(TransportMessage.SetTls, () => setTlsSend = true);

            MessageSender.SendTransportMessage(TransportMessage.Opened);
            MessageSender.SendToReceivePipe(StreamHeader.Client());
            MessageSender.SendToReceivePipe(featuresResponse);

            Assert.Equal("starttls", sentElement.Name);

            MessageSender.SendToReceivePipe(new XmlElement("proceed").Xmlns(XmppNamespaces.Tls));
            Assert.True(setTlsSend);
        }