Teat meta (de-)serialization

This commit is contained in:
badaix 2021-05-23 12:45:32 +02:00
parent 56bf306eb8
commit 09cde776b1

View file

@ -107,42 +107,49 @@ TEST_CASE("Uri")
TEST_CASE("Metatags") TEST_CASE("Metatags")
{ {
Metatags meta; auto in_json = json::parse(R"(
meta.fromJson(json::parse(R"({ {
"STREAM": "Spotify", "album": "Memories...Do Not Open",
"album": "tru.",
"albumArtist": [ "albumArtist": [
"Cro" "The Chainsmokers"
], ],
"albumArtistSort": [ "albumArtistSort": [
"Cro" "Chainsmokers, The"
], ],
"artist": [ "artist": [
"Cro" "The Chainsmokers & Coldplay"
], ],
"artistSort": [ "artistSort": [
"Cro" "Chainsmokers, The & Coldplay"
], ],
"contentCreated": "2017-09-08", "contentCreated": "2017-04-07",
"discNumber": 1, "discNumber": 1,
"duration": 144.77, "duration": 247.0,
"file": "Cro - tru. (2017)/01 - kapitel 1.mp3", "file": "The Chainsmokers - Memories...Do Not Open (2017)/05 - Something Just Like This.mp3",
"genre": [ "genre": [
"Hip-Hop" "Dance/Electronic"
], ],
"label": "Chimperator Productions", "label": "Columbia/Disruptor Records",
"musicbrainzAlbumArtistId": "b2ea6506-645e-4935-8d82-84c3a95fe7f0", "musicbrainzAlbumArtistId": "91a81925-92f9-4fc9-b897-93cf01226282",
"musicbrainzAlbumId": "621ca91c-bf60-428f-bdad-3b985dd5610c", "musicbrainzAlbumId": "a9ff33d7-c5a1-4e15-83f7-f669ff96c196",
"musicbrainzArtistId": "b2ea6506-645e-4935-8d82-84c3a95fe7f0", "musicbrainzArtistId": "91a81925-92f9-4fc9-b897-93cf01226282/cc197bad-dc9c-440d-a5b5-d52ba2e14234",
"musicbrainzReleasetrackId": "4b24ea6c-eacf-4ae5-a0c3-9387fb99bb5b", "musicbrainzReleaseTrackId": "8ccd52a8-de1d-48ce-acf9-b382a7296cfe",
"musicbrainzTrackId": "fa7ef8b1-04cf-47e2-bcd3-9397f470dad5", "musicbrainzTrackId": "6fdd95d6-9837-4d95-91f4-b123d0696a2a",
"originalDate": "2017", "originalDate": "2017",
"title": "kapitel 1", "title": "Something Just Like This",
"track": 1 "trackNumber": 5
})")); }
)");
std::cout << in_json.dump(4) << "\n";
Metatags meta(in_json);
REQUIRE(meta.album.has_value()); REQUIRE(meta.album.has_value());
REQUIRE(meta.album.value() == "tru."); REQUIRE(meta.album.value() == "Memories...Do Not Open");
REQUIRE(meta.genre.has_value()); REQUIRE(meta.genre.has_value());
REQUIRE(meta.genre->size() == 1); REQUIRE(meta.genre->size() == 1);
REQUIRE(meta.genre.value().front() == "Hip-Hop"); REQUIRE(meta.genre.value().front() == "Dance/Electronic");
auto out_json = meta.toJson();
std::cout << out_json.dump(4) << "\n";
REQUIRE(in_json == out_json);
} }