#include <library/cpp/testing/mock_server/server.h> #include <library/cpp/http/simple/http_client.h> #include <library/cpp/testing/unittest/registar.h> Y_UNIT_TEST_SUITE(Server) { int i; Y_UNIT_TEST(pong) { TPortManager pm; ui16 port = pm.GetPort(80); NMock::TMockServer server(port, []() { return new NMock::TPong; }); TKeepAliveHttpClient cl("localhost", port); UNIT_ASSERT_VALUES_EQUAL(200, cl.DoGet("/ping")); UNIT_ASSERT_VALUES_EQUAL(404, cl.DoGet("/kek")); } Y_UNIT_TEST(custom) { class TCustomReplier: public TRequestReplier { public: bool DoReply(const TReplyParams& params) override { THttpResponse resp(HttpCodes::HTTP_OK); resp.SetContent("everithing is ok"); resp.OutTo(params.Output); return true; } }; TPortManager pm; ui16 port = pm.GetPort(80); NMock::TMockServer server(port, []() { return new TCustomReplier; }); TKeepAliveHttpClient cl("localhost", port); TStringStream out; UNIT_ASSERT_VALUES_EQUAL(200, cl.DoGet("/foo", &out)); UNIT_ASSERT_VALUES_EQUAL("everithing is ok", out.Str()); } }