Exemplo n.º 1
0
static void TestClient(Client &client)
{
    Value params;
    Value result;
    bool success;

    MilliSleep(50);
    client.SetServer(ServerIpAddress, ServerPort);
    client.SetTimeout(2000);

    // Add the parameters
    // Note that the parameters will be invalidated inside the Call
    params.SetArray();
    params[0] = 5;
    params[1] = 6;
    success = client.Call("add", params, result);
    EXPECT_TRUE(success);
    if (success)
    {
		if (result.IsInt())
			EXPECT_EQ(result.GetInt(), 11);
		else
			EXPECT_DOUBLE_EQ(result.GetDouble(), 11);
    }

    // Subtract the parameters
    success = client.Call("subtract", params, result);
    EXPECT_TRUE(success);
    if (success)
    {
		if (result.IsInt())
			EXPECT_EQ(result.GetInt(), -1);
		else
			EXPECT_DOUBLE_EQ(result.GetDouble(), -1);
    }

    // Call divide but this is not implement so expect a failure
    success = client.Call("divide", params, result);
    EXPECT_FALSE(success);

    // Send large data set
    const int numValues = 100;
    params.SetSize(numValues);
    for (int i=0; i<numValues; i++)
        params[i] = abcString;
    success = client.Call("echo", params, result);
    EXPECT_TRUE(success);
    if (success)
    {
		ASSERT_TRUE(result.IsArray());
		for (int i=0; i<numValues; i++)
		{
			ASSERT_TRUE(result[i].IsString());
			ASSERT_STREQ(result[i].GetString(), abcString.c_str());
		}
    }
}