| Index: ceee/ie/broker/broker_rpc_unittest.cc
|
| ===================================================================
|
| --- ceee/ie/broker/broker_rpc_unittest.cc (revision 67655)
|
| +++ ceee/ie/broker/broker_rpc_unittest.cc (working copy)
|
| @@ -24,12 +24,12 @@
|
|
|
| MOCK_STATIC_CLASS_BEGIN(BrokerRpcMock)
|
| MOCK_STATIC_INIT_BEGIN(BrokerRpcMock)
|
| - MOCK_STATIC_INIT(GetRpcEndPointAddress);
|
| + MOCK_STATIC_INIT(GetRpcEndpointAddress);
|
| MOCK_STATIC_INIT(BrokerRpcServer_FireEvent);
|
| MOCK_STATIC_INIT(BrokerRpcServer_SendUmaHistogramTimes);
|
| MOCK_STATIC_INIT(BrokerRpcServer_SendUmaHistogramData);
|
| MOCK_STATIC_INIT_END()
|
| - MOCK_STATIC0(std::wstring, , GetRpcEndPointAddress);
|
| + MOCK_STATIC0(std::wstring, , GetRpcEndpointAddress);
|
| MOCK_STATIC3(void, , BrokerRpcServer_FireEvent, handle_t, const char*,
|
| const char*);
|
| MOCK_STATIC3(void, , BrokerRpcServer_SendUmaHistogramTimes, handle_t,
|
| @@ -41,7 +41,7 @@
|
| class BrokerRpcTest : public testing::Test {
|
| protected:
|
| virtual void SetUp() {
|
| - EXPECT_CALL(broker_rpc_mock_, GetRpcEndPointAddress())
|
| + EXPECT_CALL(broker_rpc_mock_, GetRpcEndpointAddress())
|
| .WillRepeatedly(Return(L"BrokerRpcTestEP"));
|
| }
|
|
|
| @@ -52,7 +52,7 @@
|
| };
|
|
|
| TEST_F(BrokerRpcTest, ConnectNoServer) {
|
| - BrokerRpcClient client;
|
| + BrokerRpcClient client(false);
|
| ASSERT_FALSE(client.is_connected());
|
| ASSERT_HRESULT_FAILED(client.Connect(false));
|
| ASSERT_FALSE(client.is_connected());
|
| @@ -63,7 +63,7 @@
|
| ASSERT_FALSE(server.is_started());
|
| ASSERT_TRUE(server.Start());
|
| ASSERT_TRUE(server.is_started());
|
| - BrokerRpcClient client;
|
| + BrokerRpcClient client(false);
|
| ASSERT_HRESULT_SUCCEEDED(client.Connect(false));
|
| ASSERT_TRUE(client.is_connected());
|
| }
|
| @@ -72,7 +72,7 @@
|
| BrokerRpcServer server;
|
| ASSERT_TRUE(server.Start());
|
|
|
| - BrokerRpcClient client;
|
| + BrokerRpcClient client(false);
|
| ASSERT_HRESULT_SUCCEEDED(client.Connect(false));
|
|
|
| const char* name = "name";
|
| @@ -95,4 +95,69 @@
|
| ASSERT_HRESULT_SUCCEEDED(client.SendUmaHistogramData(name, 1, 2, 3, 4));
|
| }
|
|
|
| +class BrokerRpcClientMock : public BrokerRpcClient {
|
| + public:
|
| + explicit BrokerRpcClientMock(bool allow_restarts)
|
| + : BrokerRpcClient(allow_restarts) {}
|
| + MOCK_METHOD0(StartServerMock, HRESULT());
|
| + protected:
|
| + HRESULT StartServer(IUnknown** server) {
|
| + server_.Start();
|
| + return StartServerMock();
|
| + }
|
| +
|
| + public:
|
| + BrokerRpcServer server_;
|
| +};
|
| +
|
| +TEST_F(BrokerRpcTest, StartServer) {
|
| + BrokerRpcClientMock client(true);
|
| + EXPECT_CALL(client, StartServerMock())
|
| + .Times(0);
|
| + ASSERT_HRESULT_FAILED(client.Connect(false));
|
| +
|
| + EXPECT_CALL(client, StartServerMock())
|
| + .Times(1)
|
| + .WillOnce(Return(RPC_E_FAULT));
|
| + ASSERT_HRESULT_FAILED(client.Connect(true));
|
| +
|
| + EXPECT_CALL(client, StartServerMock())
|
| + .Times(1)
|
| + .WillOnce(Return(S_OK));
|
| + ASSERT_HRESULT_SUCCEEDED(client.Connect(true));
|
| +}
|
| +
|
| +TEST_F(BrokerRpcTest, NoRestartServer) {
|
| + BrokerRpcClientMock client(false);
|
| + EXPECT_CALL(client, StartServerMock())
|
| + .Times(1)
|
| + .WillOnce(Return(S_OK));
|
| + ASSERT_HRESULT_SUCCEEDED(client.Connect(true));
|
| + client.server_.Stop();
|
| +
|
| + EXPECT_CALL(client, StartServerMock())
|
| + .Times(0);
|
| + EXPECT_CALL(broker_rpc_mock_,
|
| + BrokerRpcServer_FireEvent(_, _, _))
|
| + .Times(0);
|
| + ASSERT_HRESULT_FAILED(client.FireEvent("A", "B"));
|
| +}
|
| +
|
| +TEST_F(BrokerRpcTest, RestartServer) {
|
| + BrokerRpcClientMock client(true);
|
| + EXPECT_CALL(client, StartServerMock())
|
| + .Times(1)
|
| + .WillOnce(Return(S_OK));
|
| + ASSERT_HRESULT_SUCCEEDED(client.Connect(true));
|
| + client.server_.Stop();
|
| +
|
| + EXPECT_CALL(client, StartServerMock())
|
| + .Times(1)
|
| + .WillOnce(Return(S_OK));
|
| + EXPECT_CALL(broker_rpc_mock_,
|
| + BrokerRpcServer_FireEvent(_, _, _))
|
| + .Times(1);
|
| + ASSERT_HRESULT_SUCCEEDED(client.FireEvent("A", "B"));
|
| +}
|
| +
|
| } // namespace
|
|
|