Ejemplo n.º 1
0
        public void SazLoaderWSTest()
        {
            var saz    = "TestData/websocket.saz";
            var engine = SazLoaderEngine.Create(saz);
            var tcs    = new TaskCompletionSource <bool>();

            engine.AllSessionsComlete += () => tcs.TrySetResult(true);

            var clientWebSockets = new List <IReadOnlyWebSocketMessage>();
            var serverWebSockets = new List <IReadOnlyWebSocketMessage>();

            engine.ClientWebSocketMessageSent += (_, x) => clientWebSockets.Add(x.Message);
            engine.ServerWebSocketMessageSent += (_, x) => serverWebSockets.Add(x.Message);
            engine.Start();

            tcs.Task.Wait();

            clientWebSockets.Count.Is(3);
            clientWebSockets[0].HandshakeSession.Request.Headers.GetFirstValue("Upgrade").Is("websocket");
            clientWebSockets[0].HandshakeSession.Response.StatusLine.StatusCode.Is(HttpStatusCode.SwitchingProtocols);
            clientWebSockets[0].HandshakeSession.Response.Headers.GetFirstValue("Upgrade").Is("websocket");
            clientWebSockets[0].Opcode.Is(WebSocketOpcode.Text);
            clientWebSockets[0].PayloadData.ToASCII().Is("Rock it with HTML5 WebSocket");
            clientWebSockets[1].PayloadData.ToASCII().Is("hogee");
            clientWebSockets[2].Opcode.Is(WebSocketOpcode.Close);

            serverWebSockets.Count.Is(3);
            serverWebSockets[0].HandshakeSession.Request.Headers.GetFirstValue("Upgrade").Is("websocket");
            serverWebSockets[0].HandshakeSession.Response.StatusLine.StatusCode.Is(HttpStatusCode.SwitchingProtocols);
            serverWebSockets[0].HandshakeSession.Response.Headers.GetFirstValue("Upgrade").Is("websocket");
            serverWebSockets[0].Opcode.Is(WebSocketOpcode.Text);
            serverWebSockets[0].PayloadData.ToASCII().Is("Rock it with HTML5 WebSocket");
            serverWebSockets[1].PayloadData.ToASCII().Is("hogee");
            serverWebSockets[2].Opcode.Is(WebSocketOpcode.Close);
        }
Ejemplo n.º 2
0
        public void SazLoaderHTTPTest()
        {
            var saz    = "TestData/abehiroshi.saz";
            var engine = SazLoaderEngine.Create(saz);
            var tcs    = new TaskCompletionSource <bool>();

            engine.AllSessionsComlete += () => tcs.TrySetResult(true);

            var sessions = new List <(IReadOnlySession Session, DateTimeOffset Time)>();

            engine.HttpResponseSent += (_, s) => sessions.Add((s.Session, DateTimeOffset.Now));
            engine.Start();

            tcs.Task.Wait();

            foreach (var item in sessions)
            {
                Debug.WriteLine($"{item.Time.ToString("HH:mm:ss.fffffff")}: {item.Session.Request.RequestLine}");
            }

            var result = sessions.Select(x => x.Session).ToArray();

            result.Is(saz);
        }