1 #include <gtest/gtest.h>
2 #include <boost/filesystem.hpp>
4 #include "libaktualizr/campaign.h"
6 #include "utilities/utils.h"
8 boost::filesystem::path test_data_dir;
11 TEST(campaign, Campaigns_from_json) {
12 auto json = Utils::parseJSONFile(test_data_dir /
"campaigns_sample.json");
14 auto campaigns = campaign::Campaign::campaignsFromJson(json);
15 EXPECT_EQ(campaigns.size(), 1);
17 EXPECT_EQ(campaigns.at(0).name,
"campaign1");
18 EXPECT_EQ(campaigns.at(0).id,
"c2eb7e8d-8aa0-429d-883f-5ed8fdb2a493");
19 EXPECT_EQ(campaigns.at(0).size, 62470);
20 EXPECT_TRUE(campaigns.at(0).autoAccept);
21 EXPECT_EQ(campaigns.at(0).description,
"this is my message to show on the device");
22 EXPECT_EQ(campaigns.at(0).estInstallationDuration, 10);
23 EXPECT_EQ(campaigns.at(0).estPreparationDuration, 20);
27 bad4[
"campaigns"] = Json::Value(Json::arrayValue);
28 bad4[
"campaigns"][0] = Json::Value();
29 bad4[
"campaigns"][0][
"name"] =
"a";
30 bad4[
"campaigns"][0][
"id"] =
"a";
31 auto campaignsNoAutoAccept = campaign::Campaign::campaignsFromJson(bad4);
32 EXPECT_FALSE(campaignsNoAutoAccept.at(0).autoAccept);
36 TEST(campaign, Campaigns_to_json) {
37 auto json = Utils::parseJSONFile(test_data_dir /
"campaigns_sample.json");
39 auto campaigns = campaign::Campaign::campaignsFromJson(json);
41 campaign::Campaign::JsonFromCampaigns(campaigns, res);
43 EXPECT_EQ(res[
"campaigns"][0][
"name"],
"campaign1");
44 EXPECT_EQ(res[
"campaigns"][0][
"id"],
"c2eb7e8d-8aa0-429d-883f-5ed8fdb2a493");
45 EXPECT_EQ((res[
"campaigns"][0][
"size"]).asInt64(), 62470);
46 EXPECT_EQ(res[
"campaigns"][0][
"autoAccept"],
true);
47 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][0][
"type"],
"DESCRIPTION");
48 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][0][
"value"],
"this is my message to show on the device");
49 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][1][
"type"],
"ESTIMATED_INSTALLATION_DURATION");
50 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][1][
"value"],
"10");
51 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][2][
"type"],
"ESTIMATED_PREPARATION_DURATION");
52 EXPECT_EQ(res[
"campaigns"][0][
"metadata"][2][
"value"],
"20");
55 TEST(campaign, Campaigns_from_invalid_json) {
57 EXPECT_EQ(campaign::Campaign::campaignsFromJson(Json::Value()).size(), 0);
60 EXPECT_EQ(campaign::Campaign::campaignsFromJson(Json::Value(Json::arrayValue)).size(), 0);
64 bad1[
"campaigns"] = Json::Value();
65 EXPECT_EQ(campaign::Campaign::campaignsFromJson(bad1).size(), 0);
69 bad2[
"campaigns"] = Json::Value(Json::arrayValue);
70 bad2[
"campaigns"][0] = Json::Value(Json::arrayValue);
71 EXPECT_EQ(campaign::Campaign::campaignsFromJson(bad2).size(), 0);
75 bad3[
"campaigns"] = Json::Value(Json::arrayValue);
76 bad3[
"campaigns"][0] = Json::Value();
77 EXPECT_EQ(campaign::Campaign::campaignsFromJson(bad3).size(), 0);
81 int main(
int argc,
char **argv) {
82 ::testing::InitGoogleTest(&argc, argv);
85 std::cerr <<
"Error: " << argv[0] <<
" requires the path to the test data as an input argument.\n";
88 test_data_dir = argv[1];
90 return RUN_ALL_TESTS();