40 #ifndef __OPENFLUID_WARESDEVTESTS_SIGNATURECOMMON_HPP__
41 #define __OPENFLUID_WARESDEVTESTS_SIGNATURECOMMON_HPP__
48 BOOST_CHECK_EQUAL_COLLECTIONS(S1.
Tags.begin(),S1.
Tags.end(),S2.
Tags.begin(),S2.
Tags.end());
63 BOOST_REQUIRE_EQUAL(TagsArr1.size(), TagsArr2.size());
65 BOOST_CHECK_EQUAL(Issue1.value(
"id", 0), Issue2.value(
"id", 0));
66 BOOST_CHECK_EQUAL(Issue1.value(
"title",
""), Issue2.value(
"title",
""));
67 BOOST_CHECK_EQUAL(Issue1.value(
"description",
""), Issue2.value(
"description",
""));
68 for (
unsigned int i=0; i < TagsArr1.size(); i++)
70 BOOST_CHECK_EQUAL(TagsArr1[i], TagsArr2[i]);
72 BOOST_CHECK_EQUAL(Issue1.value(
"creator",
""), Issue2.value(
"creator",
""));
73 BOOST_CHECK_EQUAL(Issue1.value(
"created_at",
""), Issue2.value(
"created_at",
""));
74 BOOST_CHECK_EQUAL(Issue1.value(
"updated_at",
""), Issue2.value(
"updated_at",
""));
75 BOOST_CHECK_EQUAL(Issue1.value(
"state",
""), Issue2.value(
"state",
""));
86 BOOST_CHECK(Json1.is_array());
87 BOOST_CHECK(Json2.is_array());
88 BOOST_REQUIRE_EQUAL(Json1.size(), Json2.size());
96 template<
typename SignatureType>
99 BOOST_CHECK_EQUAL(Sign1.ID,Sign2.ID);
100 BOOST_CHECK_EQUAL(Sign1.Name,Sign2.Name);
101 BOOST_CHECK_EQUAL(Sign1.Description,Sign2.Description);
102 BOOST_CHECK_EQUAL(Sign1.Status,Sign2.Status);
103 BOOST_CHECK_EQUAL(Sign1.Version,Sign2.Version);
105 BOOST_REQUIRE_EQUAL(Sign1.Authors.size(),Sign2.Authors.size());
106 for (
unsigned int i=0; i < Sign1.Authors.size(); i++)
108 BOOST_CHECK_EQUAL(Sign1.Authors[i].first,Sign2.Authors[i].first);
109 BOOST_CHECK_EQUAL(Sign1.Authors[i].second,Sign2.Authors[i].second);
112 BOOST_REQUIRE_EQUAL(Sign1.Contacts.size(),Sign2.Contacts.size());
113 for (
unsigned int i=0; i < Sign1.Contacts.size(); i++)
115 BOOST_CHECK_EQUAL(Sign1.Contacts[i].first,Sign2.Contacts[i].first);
116 BOOST_CHECK_EQUAL(Sign1.Contacts[i].second,Sign2.Contacts[i].second);
119 BOOST_CHECK_EQUAL(Sign1.License,Sign2.License);
121 BOOST_CHECK_EQUAL(Sign1.Tags.size(),Sign2.Tags.size());
122 BOOST_CHECK_EQUAL_COLLECTIONS(Sign1.Tags.begin(),Sign1.Tags.end(),Sign2.Tags.begin(),Sign2.Tags.end());
124 BOOST_CHECK_EQUAL(Sign1.Links.size(),Sign2.Links.size());
126 BOOST_REQUIRE_EQUAL(Sign1.Issues().size(),Sign2.Issues().size());
127 for (
const auto& S1 : Sign1.Issues())
129 BOOST_REQUIRE_NO_THROW(Sign2.Issues.get(S1.first));
130 auto S2 = Sign2.Issues().at(S1.first);
135 BOOST_REQUIRE_EQUAL(Sign1.Dependencies.size(),Sign2.Dependencies.size());
136 for (
const auto& D : Sign1.Dependencies)
138 BOOST_REQUIRE_NO_THROW(Sign2.Dependencies.at(D.first));
139 BOOST_REQUIRE_EQUAL(D.second, Sign2.Dependencies.at(D.first));
150 BOOST_CHECK_EQUAL(Json1.value(
"id",
""), Json2.value(
"id",
""));
151 BOOST_CHECK_EQUAL(Json1.value(
"name",
""), Json2.value(
"name",
""));
152 BOOST_CHECK_EQUAL(Json1.value(
"description",
""), Json2.value(
"description",
""));
153 BOOST_CHECK_EQUAL(Json1.value(
"status",
""), Json2.value(
"status",
""));
154 BOOST_CHECK_EQUAL(Json1.value(
"version",
""), Json2.value(
"version",
""));
159 for (
unsigned int i=0; i < AuthorsArr1.size(); i++)
161 BOOST_CHECK_EQUAL(AuthorsArr1[i].value(
"name",
""), AuthorsArr1[i].value(
"name",
""));
162 BOOST_CHECK_EQUAL(AuthorsArr1[i].value(
"email",
""), AuthorsArr1[i].value(
"email",
""));
168 for (
unsigned int i=0; i < ContactsArr1.size(); i++)
170 BOOST_CHECK_EQUAL(ContactsArr1[i].value(
"name",
""), ContactsArr2[i].value(
"name",
""));
171 BOOST_CHECK_EQUAL(ContactsArr1[i].value(
"email",
""), ContactsArr2[i].value(
"email",
""));
174 BOOST_CHECK_EQUAL(Json1.value(
"license",
""), Json2.value(
"license",
""));
179 for (
unsigned int i=0; i < TagsArr1.size(); i++)
181 BOOST_CHECK_EQUAL(TagsArr1[i], TagsArr2[i]);
187 for (
unsigned int i=0; i < LinksArr1.size(); i++)
189 BOOST_CHECK_EQUAL(LinksArr1[i].value(
"label",
""), LinksArr2[i].value(
"label",
""));
190 BOOST_CHECK_EQUAL(LinksArr1[i].value(
"url",
""), LinksArr2[i].value(
"url",
""));
196 for (
unsigned int i=0; i < IssuesArr1.size(); i++)
215 std::map<std::string, openfluid::thirdparty::json> orderedMapJSON;
216 for (
auto& [key, value] : Json.items())
218 orderedMapJSON[key] = value;
220 for (
auto& [key, value] : orderedMapJSON)
235 bool WithCheck =
true)
242 unsigned int Json1Size = Json1.size();
243 unsigned int Json2Size = Json2.size();
246 BOOST_CHECK_EQUAL(Json1Size, Json2Size);
248 IsEqual = IsEqual && Json1Size == Json2Size;
250 if(Json1.is_object() || Json2.is_object())
252 auto It2 = Json2.cbegin();
253 for (
auto It1 = Json1.cbegin(); It1 != Json1.cend(); ++It1, ++It2)
257 BOOST_CHECK_EQUAL(It1.key(), It2.key());
259 IsEqual = IsEqual && It1.key() == It2.key();
260 auto It1Value = It1.value();
261 auto It2Value = It2.value();
262 if(It1Value.is_primitive() || It2Value.is_primitive())
266 BOOST_CHECK_EQUAL(It1Value, It2Value);
268 IsEqual = IsEqual && It1Value == It2Value;
276 else if(Json1.is_array() || Json2.is_array())
278 auto It2 = Json2.cbegin();
279 for (
auto It1 = Json1.cbegin(); It1 != Json1.cend(); ++It1, ++It2)
283 if(Child1.is_primitive() || Child2.is_primitive())
287 BOOST_CHECK_EQUAL(Child1, Child2);
289 IsEqual = IsEqual && Child1 == Child2;
301 BOOST_CHECK_EQUAL(Json1, Json2);
303 IsEqual = IsEqual && Json1 == Json2;
void sortJson(openfluid::thirdparty::json &Json)
Definition: SignatureCommon.hpp:211
void compareSignaturesBase(const SignatureType &Sign1, const SignatureType &Sign2)
Definition: SignatureCommon.hpp:97
void compareJSONBase(const openfluid::thirdparty::json &Json1, const openfluid::thirdparty::json &Json2)
Definition: SignatureCommon.hpp:148
void compareIssues(const openfluid::ware::WareIssue S1, openfluid::ware::WareIssue S2)
Definition: SignatureCommon.hpp:44
void checkArraysJSON(const openfluid::thirdparty::json &Json1, const openfluid::thirdparty::json &Json2)
Definition: SignatureCommon.hpp:84
void compareIssuesJSON(const openfluid::thirdparty::json &Issue1, const openfluid::thirdparty::json &Issue2)
Definition: SignatureCommon.hpp:59
bool compareJSONRecursive(openfluid::thirdparty::json &Json1, openfluid::thirdparty::json &Json2, bool WithCheck=true)
Definition: SignatureCommon.hpp:233
Definition: WareIssues.hpp:60
std::string Title
Definition: WareIssues.hpp:65
std::string Description
Definition: WareIssues.hpp:67
openfluid::core::DateTime CreatedAt
Definition: WareIssues.hpp:73
std::string Creator
Definition: WareIssues.hpp:71
bool IsOpen
Definition: WareIssues.hpp:77
std::vector< std::string > Tags
Definition: WareIssues.hpp:69
nlohmann::ordered_json json
Definition: JSON.hpp:52