1 #include <boost/filesystem.hpp>
3 #include "campaign/campaign.h"
5 #include <gtest/gtest.h>
7 boost::filesystem::path test_data_dir;
10 TEST(campaign, Campaigns_from_json) {
11 auto json = Utils::parseJSONFile(test_data_dir /
"campaigns_sample.json");
13 auto campaigns = campaign::Campaign::campaignsFromJson(json);
14 EXPECT_EQ(campaigns.size(), 1);
16 EXPECT_EQ(campaigns.at(0).name,
"campaign1");
17 EXPECT_EQ(campaigns.at(0).id,
"c2eb7e8d-8aa0-429d-883f-5ed8fdb2a493");
18 EXPECT_EQ(campaigns.at(0).size, 62470);
19 EXPECT_TRUE(campaigns.at(0).autoAccept);
20 EXPECT_EQ(campaigns.at(0).description,
"this is my message to show on the device");
21 EXPECT_EQ(campaigns.at(0).estInstallationDuration, 10);
22 EXPECT_EQ(campaigns.at(0).estPreparationDuration, 20);
26 bad4[
"campaigns"] = Json::Value(Json::arrayValue);
27 bad4[
"campaigns"][0] = Json::Value();
28 bad4[
"campaigns"][0][
"name"] =
"a";
29 bad4[
"campaigns"][0][
"id"] =
"a";
30 auto campaignsNoAutoAccept = campaign::Campaign::campaignsFromJson(bad4);
31 EXPECT_FALSE(campaignsNoAutoAccept.at(0).autoAccept);
35 TEST(campaign, Campaigns_to_json) {
36 auto json = Utils::parseJSONFile(test_data_dir /
"campaigns_sample.json");
38 auto campaigns = campaign::Campaign::campaignsFromJson(json);
40 campaign::Campaign::JsonFromCampaigns(campaigns, res);
42 EXPECT_EQ(res[
"campaigns"][0][
"name"],
"campaign1");
43 EXPECT_EQ(res[
"campaigns"][0][
"id"],
"c2eb7e8d-8aa0-429d-883f-5ed8fdb2a493");
44 EXPECT_EQ((res[
"campaigns"][0][
"size"]).asInt64(), 62470);
45 EXPECT_EQ(res[
"campaigns"][0][
"autoAccept"],
true);
46 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][0][
"type"],
"DESCRIPTION");
47 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][0][
"value"],
"this is my message to show on the device");
48 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][1][
"type"],
"ESTIMATED_INSTALLATION_DURATION");
49 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][1][
"value"],
"10");
50 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][2][
"type"],
"ESTIMATED_PREPARATION_DURATION");
51 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][2][
"value"],
"20");
54 TEST(campaign, Campaigns_from_invalid_json) {
56 EXPECT_EQ(campaign::Campaign::campaignsFromJson(Json::Value()).size(), 0);
59 EXPECT_EQ(campaign::Campaign::campaignsFromJson(Json::Value(Json::arrayValue)).size(), 0);
63 bad1[
"campaigns"] = Json::Value();
64 EXPECT_EQ(campaign::Campaign::campaignsFromJson(bad1).size(), 0);
68 bad2[
"campaigns"] = Json::Value(Json::arrayValue);
69 bad2[
"campaigns"][0] = Json::Value(Json::arrayValue);
70 EXPECT_EQ(campaign::Campaign::campaignsFromJson(bad2).size(), 0);
74 bad3[
"campaigns"] = Json::Value(Json::arrayValue);
75 bad3[
"campaigns"][0] = Json::Value();
76 EXPECT_EQ(campaign::Campaign::campaignsFromJson(bad3).size(), 0);
80 int main(
int argc,
char **argv) {
81 ::testing::InitGoogleTest(&argc, argv);
84 std::cerr <<
"Error: " << argv[0] <<
" requires the path to the test data as an input argument.\n";
87 test_data_dir = argv[1];
89 return RUN_ALL_TESTS();