10#include <gtest/gtest.h>
11#include <nlohmann/json.hpp>
13namespace zrythm::test_helpers
25expect_registries_match (
const nlohmann::json &j1,
const nlohmann::json &j2)
27 const auto ®s1 = j1[
"projectData"][
"registries"];
28 const auto ®s2 = j2[
"projectData"][
"registries"];
30 static constexpr std::array registry_names = {
31 "portRegistry",
"paramRegistry",
"pluginRegistry",
32 "trackRegistry",
"arrangerObjectRegistry",
"fileAudioSourceRegistry",
35 for (
const auto name : registry_names)
37 const auto ®1 = regs1[name];
38 const auto ®2 = regs2[name];
40 EXPECT_EQ (reg1.size (), reg2.size ())
41 <<
"Registry " << name <<
" size mismatch";
44 std::map<std::string, nlohmann::json> objs1, objs2;
45 for (
const auto &obj : reg1)
46 objs1[obj[
"id"].get<std::string> ()] = obj;
47 for (
const auto &obj : reg2)
48 objs2[obj[
"id"].get<std::string> ()] = obj;
51 for (
const auto &[
id, obj] : objs1)
53 if (!objs2.contains (
id))
56 <<
"Registry " << name <<
": object from j1 missing in j2:\n"
60 for (
const auto &[
id, obj] : objs2)
62 if (!objs1.contains (
id))
65 <<
"Registry " << name <<
": object from j2 missing in j1:\n"