1
1
2
- #include < algorithm>
3
2
#include < optional>
4
- #include < ranges>
5
- #include < tuple>
6
- #include < vector>
7
3
8
4
#include < catch2/catch_test_macros.hpp>
9
5
#include < catch2/generators/catch_generators_range.hpp>
10
6
#include < grpcpp/create_channel.h>
11
- #include < magic_enum.hpp>
12
7
#include < microsoft/net/remote/NetRemoteServer.hxx>
13
8
#include < NetRemoteService.grpc.pb.h>
14
9
@@ -27,16 +22,24 @@ TEST_CASE("Create a NetRemoteServer instance", "[basic][rpc][remote]")
27
22
TEST_CASE (" Destroy a NetRemoteServer instance" , " [basic][rpc][remote]" )
28
23
{
29
24
using namespace Microsoft ::Net::Remote;
25
+ using namespace Microsoft ::Net::Remote::Service;
26
+
27
+ std::optional<NetRemoteServer> server{ Test::RemoteServiceAddressHttp };
28
+ server->Run ();
30
29
31
30
SECTION (" Destroy doesn't cause a crash" )
32
31
{
33
- std::optional<NetRemoteServer> server{ Test::RemoteServiceAddressHttp };
34
32
REQUIRE_NOTHROW (server.reset ());
35
33
}
36
34
37
- SECTION (" Destroy doesn't cause a crash with no connected clients" )
35
+ SECTION (" Destroy doesn't cause a crash with connected clients" )
38
36
{
39
- std::optional<NetRemoteServer> server{ Test::RemoteServiceAddressHttp };
37
+ // Vary the number of connected clients and validate test section for each.
38
+ const auto numClientsToCreate = Catch::Generators::range (1 , 2 );
39
+
40
+ // Establish client connections to the server.
41
+ const auto clients = Test::EstablishClientConnections (static_cast <std::size_t >(numClientsToCreate.get ()));
42
+
40
43
REQUIRE_NOTHROW (server.reset ());
41
44
}
42
45
}
@@ -77,15 +80,7 @@ TEST_CASE("NetRemoteServer shuts down correctly", "[basic][rpc][remote]")
77
80
const auto numClientsToCreate = Catch::Generators::range (1 , 3 );
78
81
79
82
// Establish client connections to the server.
80
- std::vector<std::tuple<std::shared_ptr<grpc::Channel>, std::unique_ptr<NetRemote::Stub>>> clients (static_cast <std::size_t >(numClientsToCreate.get ()));
81
- std::ranges::transform (clients, std::begin (clients), [&](auto &&)
82
- {
83
- auto channel = grpc::CreateChannel (Test::RemoteServiceAddressHttp, grpc::InsecureChannelCredentials ());
84
- auto client = NetRemote::NewStub (channel);
85
- REQUIRE (channel->WaitForConnected (std::chrono::system_clock::now () + Test::RemoteServiceConnectionTimeout));
86
-
87
- return std::make_tuple (channel, std::move (client));
88
- });
83
+ const auto clients = Test::EstablishClientConnections (static_cast <std::size_t >(numClientsToCreate.get ()));
89
84
90
85
// Stop the server.
91
86
REQUIRE_NOTHROW (server.Stop ());
@@ -108,15 +103,8 @@ TEST_CASE("NetRemoteServer shuts down correctly", "[basic][rpc][remote]")
108
103
// Vary the number of connected clients and validate test section for each.
109
104
const auto numClientsToCreate = Catch::Generators::range (1 , 3 );
110
105
111
- std::vector<std::tuple<std::shared_ptr<grpc::Channel>, std::unique_ptr<NetRemote::Stub>>> clients (static_cast <std::size_t >(numClientsToCreate.get ()));
112
- std::ranges::transform (clients, std::begin (clients), [&](auto &&)
113
- {
114
- auto channel = grpc::CreateChannel (Test::RemoteServiceAddressHttp, grpc::InsecureChannelCredentials ());
115
- auto client = NetRemote::NewStub (channel);
116
- REQUIRE (channel->WaitForConnected (std::chrono::system_clock::now () + Test::RemoteServiceConnectionTimeout));
117
-
118
- return std::make_tuple (channel, std::move (client));
119
- });
106
+ // Establish client connections to the server.
107
+ const auto clients = Test::EstablishClientConnections (static_cast <std::size_t >(numClientsToCreate.get ()));
120
108
121
109
REQUIRE_NOTHROW (server.Stop ());
122
110
REQUIRE (server.GetGrpcServer () == nullptr );
0 commit comments