aboutsummaryrefslogtreecommitdiff
path: root/cast/common/channel/virtual_connection_router_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cast/common/channel/virtual_connection_router_unittest.cc')
-rw-r--r--cast/common/channel/virtual_connection_router_unittest.cc149
1 files changed, 127 insertions, 22 deletions
diff --git a/cast/common/channel/virtual_connection_router_unittest.cc b/cast/common/channel/virtual_connection_router_unittest.cc
index b05d10e3..69a08c53 100644
--- a/cast/common/channel/virtual_connection_router_unittest.cc
+++ b/cast/common/channel/virtual_connection_router_unittest.cc
@@ -11,7 +11,6 @@
#include "cast/common/channel/testing/fake_cast_socket.h"
#include "cast/common/channel/testing/mock_cast_message_handler.h"
#include "cast/common/channel/testing/mock_socket_error_handler.h"
-#include "cast/common/channel/virtual_connection_manager.h"
#include "cast/common/public/cast_socket.h"
#include "gtest/gtest.h"
@@ -19,6 +18,19 @@ namespace openscreen {
namespace cast {
namespace {
+static_assert(::cast::channel::CastMessage_ProtocolVersion_CASTV2_1_0 ==
+ static_cast<int>(VirtualConnection::ProtocolVersion::kV2_1_0),
+ "V2 1.0 constants must be equal");
+static_assert(::cast::channel::CastMessage_ProtocolVersion_CASTV2_1_1 ==
+ static_cast<int>(VirtualConnection::ProtocolVersion::kV2_1_1),
+ "V2 1.1 constants must be equal");
+static_assert(::cast::channel::CastMessage_ProtocolVersion_CASTV2_1_2 ==
+ static_cast<int>(VirtualConnection::ProtocolVersion::kV2_1_2),
+ "V2 1.2 constants must be equal");
+static_assert(::cast::channel::CastMessage_ProtocolVersion_CASTV2_1_3 ==
+ static_cast<int>(VirtualConnection::ProtocolVersion::kV2_1_3),
+ "V2 1.3 constants must be equal");
+
using ::cast::channel::CastMessage;
using ::testing::_;
using ::testing::Invoke;
@@ -44,21 +56,115 @@ class VirtualConnectionRouterTest : public ::testing::Test {
MockSocketErrorHandler mock_error_handler_;
- VirtualConnectionManager local_manager_;
- VirtualConnectionRouter local_router_{&local_manager_};
+ VirtualConnectionRouter local_router_;
+ VirtualConnectionRouter remote_router_;
- VirtualConnectionManager remote_manager_;
- VirtualConnectionRouter remote_router_{&remote_manager_};
+ VirtualConnection vc1_{"local1", "peer1", 75};
+ VirtualConnection vc2_{"local2", "peer2", 76};
+ VirtualConnection vc3_{"local1", "peer3", 75};
};
} // namespace
+TEST_F(VirtualConnectionRouterTest, NoConnections) {
+ EXPECT_FALSE(local_router_.GetConnectionData(vc1_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc2_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc3_));
+}
+
+TEST_F(VirtualConnectionRouterTest, AddConnections) {
+ VirtualConnection::AssociatedData data1 = {};
+
+ local_router_.AddConnection(vc1_, std::move(data1));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc1_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc2_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc3_));
+
+ VirtualConnection::AssociatedData data2 = {};
+ local_router_.AddConnection(vc2_, std::move(data2));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc1_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc2_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc3_));
+
+ VirtualConnection::AssociatedData data3 = {};
+ local_router_.AddConnection(vc3_, std::move(data3));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc1_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc2_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc3_));
+}
+
+TEST_F(VirtualConnectionRouterTest, RemoveConnections) {
+ VirtualConnection::AssociatedData data1 = {};
+ VirtualConnection::AssociatedData data2 = {};
+ VirtualConnection::AssociatedData data3 = {};
+
+ local_router_.AddConnection(vc1_, std::move(data1));
+ local_router_.AddConnection(vc2_, std::move(data2));
+ local_router_.AddConnection(vc3_, std::move(data3));
+
+ EXPECT_TRUE(local_router_.RemoveConnection(
+ vc1_, VirtualConnection::CloseReason::kClosedBySelf));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc1_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc2_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc3_));
+
+ EXPECT_TRUE(local_router_.RemoveConnection(
+ vc2_, VirtualConnection::CloseReason::kClosedBySelf));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc1_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc2_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc3_));
+
+ EXPECT_TRUE(local_router_.RemoveConnection(
+ vc3_, VirtualConnection::CloseReason::kClosedBySelf));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc1_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc2_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc3_));
+
+ EXPECT_FALSE(local_router_.RemoveConnection(
+ vc1_, VirtualConnection::CloseReason::kClosedBySelf));
+ EXPECT_FALSE(local_router_.RemoveConnection(
+ vc2_, VirtualConnection::CloseReason::kClosedBySelf));
+ EXPECT_FALSE(local_router_.RemoveConnection(
+ vc3_, VirtualConnection::CloseReason::kClosedBySelf));
+}
+
+TEST_F(VirtualConnectionRouterTest, RemoveConnectionsByIds) {
+ VirtualConnection::AssociatedData data1 = {};
+ VirtualConnection::AssociatedData data2 = {};
+ VirtualConnection::AssociatedData data3 = {};
+
+ local_router_.AddConnection(vc1_, std::move(data1));
+ local_router_.AddConnection(vc2_, std::move(data2));
+ local_router_.AddConnection(vc3_, std::move(data3));
+
+ local_router_.RemoveConnectionsByLocalId("local1");
+ EXPECT_FALSE(local_router_.GetConnectionData(vc1_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc2_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc3_));
+
+ data1 = {};
+ data2 = {};
+ data3 = {};
+ local_router_.AddConnection(vc1_, std::move(data1));
+ local_router_.AddConnection(vc2_, std::move(data2));
+ local_router_.AddConnection(vc3_, std::move(data3));
+ local_router_.RemoveConnectionsBySocketId(76);
+ EXPECT_TRUE(local_router_.GetConnectionData(vc1_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc2_));
+ EXPECT_TRUE(local_router_.GetConnectionData(vc3_));
+
+ local_router_.RemoveConnectionsBySocketId(75);
+ EXPECT_FALSE(local_router_.GetConnectionData(vc1_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc2_));
+ EXPECT_FALSE(local_router_.GetConnectionData(vc3_));
+}
+
TEST_F(VirtualConnectionRouterTest, LocalIdHandler) {
MockCastMessageHandler mock_message_handler;
local_router_.AddHandlerForLocalId("receiver-1234", &mock_message_handler);
- local_manager_.AddConnection(VirtualConnection{"receiver-1234", "sender-9873",
- local_socket_->socket_id()},
- {});
+ local_router_.AddConnection(VirtualConnection{"receiver-1234", "sender-9873",
+ local_socket_->socket_id()},
+ {});
CastMessage message;
message.set_protocol_version(
@@ -84,9 +190,9 @@ TEST_F(VirtualConnectionRouterTest, LocalIdHandler) {
TEST_F(VirtualConnectionRouterTest, RemoveLocalIdHandler) {
MockCastMessageHandler mock_message_handler;
local_router_.AddHandlerForLocalId("receiver-1234", &mock_message_handler);
- local_manager_.AddConnection(VirtualConnection{"receiver-1234", "sender-9873",
- local_socket_->socket_id()},
- {});
+ local_router_.AddConnection(VirtualConnection{"receiver-1234", "sender-9873",
+ local_socket_->socket_id()},
+ {});
CastMessage message;
message.set_protocol_version(
@@ -108,16 +214,15 @@ TEST_F(VirtualConnectionRouterTest, RemoveLocalIdHandler) {
}
TEST_F(VirtualConnectionRouterTest, SendMessage) {
- local_manager_.AddConnection(VirtualConnection{"receiver-1234", "sender-4321",
- local_socket_->socket_id()},
- {});
+ local_router_.AddConnection(VirtualConnection{"receiver-1234", "sender-4321",
+ local_socket_->socket_id()},
+ {});
MockCastMessageHandler destination;
remote_router_.AddHandlerForLocalId("sender-4321", &destination);
- remote_manager_.AddConnection(
- VirtualConnection{"sender-4321", "receiver-1234",
- remote_socket_->socket_id()},
- {});
+ remote_router_.AddConnection(VirtualConnection{"sender-4321", "receiver-1234",
+ remote_socket_->socket_id()},
+ {});
CastMessage message;
message.set_protocol_version(
@@ -142,15 +247,15 @@ TEST_F(VirtualConnectionRouterTest, SendMessage) {
}
TEST_F(VirtualConnectionRouterTest, CloseSocketRemovesVirtualConnections) {
- local_manager_.AddConnection(VirtualConnection{"receiver-1234", "sender-4321",
- local_socket_->socket_id()},
- {});
+ local_router_.AddConnection(VirtualConnection{"receiver-1234", "sender-4321",
+ local_socket_->socket_id()},
+ {});
EXPECT_CALL(mock_error_handler_, OnClose(local_socket_)).Times(1);
int id = local_socket_->socket_id();
local_router_.CloseSocket(id);
- EXPECT_FALSE(local_manager_.GetConnectionData(
+ EXPECT_FALSE(local_router_.GetConnectionData(
VirtualConnection{"receiver-1234", "sender-4321", id}));
}