diff options
Diffstat (limited to 'zenserver-test/zenserver-test.cpp')
| -rw-r--r-- | zenserver-test/zenserver-test.cpp | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp index b7d157d5a..73048b504 100644 --- a/zenserver-test/zenserver-test.cpp +++ b/zenserver-test/zenserver-test.cpp @@ -2095,31 +2095,47 @@ TEST_CASE("websocket.basic") IoDispatcher IoDispatcher(IoCtx); auto WebSocket = WebSocketClient::Create(IoCtx); - std::atomic_bool Signaled{false}; + std::atomic_bool Done{false}; WebSocketEvent Event; WebSocket->On(WebSocketEvent::kConnected, [&]() { - Event = WebSocketEvent::kConnected; - Signaled = true; + CbObjectWriter Req; + Req.BeginObject("Header"); + Req << "Method"sv + << "TestHelloZen"sv; + Req << "CorrelationId" << uint64_t(1); + Req.EndObject(); + + WebSocket->SendMsg(Req.Save()); }); WebSocket->On(WebSocketEvent::kDisconnected, [&]() { - Event = WebSocketEvent::kDisconnected; - Signaled = true; + Event = WebSocketEvent::kDisconnected; + Done = true; + }); + + CbPackage Response; + WebSocket->OnMessage([&](const CbPackage& Msg) { + Response = Msg; + Done = true; }); WebSocket->Connect({.Host = "127.0.0.1", .Port = 8848, .Endpoint = "/zen"}); IoDispatcher.Run(); - while (Signaled == false && IoDispatcher.IsRunning()) + while (Done == false && IoDispatcher.IsRunning()) { - std::this_thread::sleep_for(std::chrono::seconds(5)); + std::this_thread::sleep_for(std::chrono::seconds(2)); }; - CHECK(Event == WebSocketEvent::kConnected); + CbObject ResponseObject = Response.GetObject(); + std::string_view Message = ResponseObject["Result"].AsString(); + CHECK(Message == "Hello Friend!!"sv); WebSocket->Disconnect(); + + IoDispatcher.Stop(); } # if 0 |