artist tests
This commit is contained in:
		| @@ -102,3 +102,83 @@ func TestAlbumUnify(t *testing.T) { | ||||
| 		t.Errorf(`the song name doesn't get compiled properly`) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestArtistDeduplicate(t *testing.T) { | ||||
| 	artist := Artist{ | ||||
| 		Name: "main_artist", | ||||
| 		Albums: []Album{ | ||||
| 			{Name: "concept_album"}, | ||||
| 			{ | ||||
| 				Name: "concept_album", | ||||
| 				Artists: []Artist{ | ||||
| 					{ | ||||
| 						Name: "main_artist", | ||||
| 						Albums: []Album{ | ||||
| 							{Name: "concept_album", Songs: []Song{{Name: "song_x"}, {Name: "song_x"}}}, | ||||
| 							{Name: "other_album"}, | ||||
| 						}, | ||||
| 					}, | ||||
| 					{Name: "featured_artist"}, | ||||
| 					{Name: "featured_artist"}, | ||||
| 				}, | ||||
| 				Songs: []Song{ | ||||
| 					{ | ||||
| 						Name: "complex_song", | ||||
| 						Artists: []Artist{ | ||||
| 							{Name: "main_artist"}, | ||||
| 							{Name: "featured_artist"}, | ||||
| 							{Name: "main_artist"}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	compiled := artist.Compile().(Artist) | ||||
|  | ||||
| 	if len(compiled.Albums) != 1 { | ||||
| 		t.Errorf("should deduplicate album artists, got %d", len(compiled.Albums[0].Artists)) | ||||
| 	} | ||||
|  | ||||
| 	if len(compiled.Albums[0].Artists) != 2 { | ||||
| 		t.Errorf("should deduplicate album artists, got %d", len(compiled.Albums[0].Artists)) | ||||
| 	} | ||||
|  | ||||
| 	if len(compiled.Albums[0].Artists[0].Albums) != 2 { | ||||
| 		t.Errorf("should deduplicate nested albums, got %d", len(compiled.Albums[0].Artists[0].Albums)) | ||||
| 	} | ||||
|  | ||||
| 	if len(compiled.Albums[0].Songs[0].Artists) != 2 { | ||||
| 		t.Errorf("should deduplicate song artists, got %d", len(compiled.Albums[0].Songs[0].Artists)) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestArtistUnify(t *testing.T) { | ||||
| 	artist := Artist{ | ||||
| 		Name: "          The  BEATLES  ", | ||||
| 		Albums: []Album{ | ||||
| 			{ | ||||
| 				Name: "  Abbey   Road  ", | ||||
| 				Songs: []Song{ | ||||
| 					{Name: "Come   Together  "}, | ||||
| 					{Name: "Something"}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	compiled := artist.Compile().(Artist) | ||||
|  | ||||
| 	if compiled.UnifiedName != "the beatles" { | ||||
| 		t.Errorf("artist name not unified properly, got: %s", compiled.UnifiedName) | ||||
| 	} | ||||
|  | ||||
| 	if compiled.Albums[0].UnifiedName != "abbey road" { | ||||
| 		t.Errorf("album name in artist not unified properly, got: %s", compiled.Albums[0].UnifiedName) | ||||
| 	} | ||||
|  | ||||
| 	if compiled.Albums[0].Songs[0].UnifiedName != "come together" { | ||||
| 		t.Errorf("song name in artist album not unified properly, got: %s", compiled.Albums[0].Songs[0].UnifiedName) | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user