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); }
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); }