Skip to content

Commit a9f45c2

Browse files
author
Alexandre jublot
committed
tests: added unit-tests for SessionStore
1 parent 91f4835 commit a9f45c2

1 file changed

Lines changed: 116 additions & 0 deletions

File tree

tests/unit-tests/SessionStore.cpp

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,4 +167,120 @@ TEST(SessionStoreTests, UdpExceptSessionStoreId)
167167
store.registerClient(endpoint3);
168168
auto excepted = store.udpEndpointsOfExcept(session);
169169
ASSERT_EQ(excepted.size(), 2);
170+
}
171+
172+
TEST(SessionStoreTests, Copy)
173+
{
174+
using namespace polymorph::network;
175+
SessionStore store;
176+
auto endpoint1 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.1"), 1);
177+
auto endpoint2 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.2"), 2);
178+
auto endpoint3 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.3"), 3);
179+
auto endpoint4 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.4"), 4);
180+
auto session1 = store.registerClient(endpoint1);
181+
auto session2 = store.registerClient(endpoint2);
182+
auto session3 = store.registerClient(endpoint3);
183+
auto session4 = store.registerClient(endpoint4);
184+
SessionStore copy = store;
185+
ASSERT_EQ(copy.sessionOf(endpoint1), session1);
186+
ASSERT_EQ(copy.sessionOf(endpoint2), session2);
187+
ASSERT_EQ(copy.sessionOf(endpoint3), session3);
188+
ASSERT_EQ(copy.sessionOf(endpoint4), session4);
189+
}
190+
191+
TEST(SessionStoreTests, CopyTcpSessions)
192+
{
193+
using namespace polymorph::network;
194+
SessionStore store;
195+
SessionStore copy = store;
196+
auto endpoint1 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.1"), 1);
197+
auto endpoint2 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.2"), 2);
198+
auto endpoint3 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.3"), 3);
199+
auto endpoint4 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.4"), 4);
200+
store.registerClient(endpoint1);
201+
auto session2 = store.registerClient(endpoint2);
202+
store.registerClient(endpoint3);
203+
auto session4 = store.registerClient(endpoint4);
204+
copy.copyTcpSessionsFrom(store);
205+
ASSERT_EQ(copy.sessionOf(endpoint2), session2);
206+
ASSERT_EQ(copy.sessionOf(endpoint4), session4);
207+
try {
208+
copy.sessionOf(endpoint1);
209+
FAIL();
210+
} catch (const exceptions::UnknownSessionException&) {}
211+
try {
212+
copy.sessionOf(endpoint3);
213+
FAIL();
214+
} catch (const exceptions::UnknownSessionException&) {}
215+
216+
}
217+
218+
TEST(SessionStoreTests, CopyUdpSessions)
219+
{
220+
using namespace polymorph::network;
221+
SessionStore store;
222+
SessionStore copy = store;
223+
auto endpoint1 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.1"), 1);
224+
auto endpoint2 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.2"), 2);
225+
auto endpoint3 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.3"), 3);
226+
auto endpoint4 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.4"), 4);
227+
auto session1 = store.registerClient(endpoint1);
228+
store.registerClient(endpoint2);
229+
auto session3 = store.registerClient(endpoint3);
230+
store.registerClient(endpoint4);
231+
copy.copyUdpSessionsFrom(store);
232+
ASSERT_EQ(copy.sessionOf(endpoint1), session1);
233+
ASSERT_EQ(copy.sessionOf(endpoint3), session3);
234+
try {
235+
copy.sessionOf(endpoint2);
236+
FAIL();
237+
} catch (const exceptions::UnknownSessionException&) {}
238+
try {
239+
copy.sessionOf(endpoint4);
240+
FAIL();
241+
} catch (const exceptions::UnknownSessionException&) {}
242+
}
243+
244+
TEST(SessionStoreTests, CopyUdpAuthorizationKeys)
245+
{
246+
using namespace polymorph::network;
247+
SessionStore store;
248+
SessionStore copy = store;
249+
auto endpoint1 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.1"), 1);
250+
auto endpoint2 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.2"), 2);
251+
auto endpoint3 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.3"), 3);
252+
auto endpoint4 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.4"), 4);
253+
auto session2 = store.registerClient(endpoint2);
254+
auto session4 = store.registerClient(endpoint4);
255+
auto key2 = store.generateUdpAuthorizationKey(session2);
256+
auto key4 = store.generateUdpAuthorizationKey(session4);
257+
copy.copyUdpAuthorizationKeysFrom(store);
258+
ASSERT_NO_THROW({
259+
copy.registerAuthoredClient(endpoint1, session2, key2);
260+
});
261+
ASSERT_NO_THROW({
262+
copy.registerAuthoredClient(endpoint3, session4, key4);
263+
});
264+
}
265+
266+
TEST(SessionStoreTests, CopyTcpAuthorizationKeys)
267+
{
268+
using namespace polymorph::network;
269+
SessionStore store;
270+
SessionStore copy = store;
271+
auto endpoint1 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.1"), 1);
272+
auto endpoint2 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.2"), 2);
273+
auto endpoint3 = asio::ip::udp::endpoint(asio::ip::make_address_v4("127.0.0.3"), 3);
274+
auto endpoint4 = asio::ip::tcp::endpoint(asio::ip::make_address_v4("127.0.0.4"), 4);
275+
auto session1 = store.registerClient(endpoint1);
276+
auto session3 = store.registerClient(endpoint3);
277+
auto key1 = store.generateTcpAuthorizationKey(session1);
278+
auto key3 = store.generateTcpAuthorizationKey(session3);
279+
copy.copyTcpAuthorizationKeysFrom(store);
280+
ASSERT_NO_THROW({
281+
copy.registerAuthoredClient(endpoint2, session1, key1);
282+
});
283+
ASSERT_NO_THROW({
284+
copy.registerAuthoredClient(endpoint4, session3, key3);
285+
});
170286
}

0 commit comments

Comments
 (0)