added basic tests
This commit is contained in:
parent
b65d68ed86
commit
4f527f3747
37
internal/common/strings_test.go
Normal file
37
internal/common/strings_test.go
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package common
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestUnify(t *testing.T) {
|
||||||
|
if "foo" != Unify("foo") {
|
||||||
|
t.Errorf(`"foo" has to be untouched by unify`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if "foo" != Unify("Foo") {
|
||||||
|
t.Errorf(`"Foo" needs to be lowercase after test`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if "foo" != Unify(" Foo") {
|
||||||
|
t.Errorf(`The spaces need to be stripped`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if "foo" != Unify(" Foo ") {
|
||||||
|
t.Errorf(`The spaces need to be stripped`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if "foo bar" != Unify("Foo bar") {
|
||||||
|
t.Errorf(`Single whitespaces need to be left alone`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if "foo bar" != Unify("Foo bar") {
|
||||||
|
t.Errorf(`Double whitespaces need to be removed`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if "foo bar" != Unify("Foo bar") {
|
||||||
|
t.Errorf(`Double whitespaces need to be removed`)
|
||||||
|
}
|
||||||
|
|
||||||
|
if "foo bar baz" != Unify("Foo bar baz") {
|
||||||
|
t.Errorf(`Double whitespaces need to be removed`)
|
||||||
|
}
|
||||||
|
}
|
@ -105,6 +105,7 @@ func (m Song) Merge(other MusicObject) MusicObject {
|
|||||||
func (m Song) Compile() MusicObject {
|
func (m Song) Compile() MusicObject {
|
||||||
m.Sources = dedupeSources(m.Sources)
|
m.Sources = dedupeSources(m.Sources)
|
||||||
m.UnifiedName = common.Unify(m.Name)
|
m.UnifiedName = common.Unify(m.Name)
|
||||||
|
m.Album = m.Album.Compile().(Album)
|
||||||
m.Artists = dedupeMusicObjects(m.Artists)
|
m.Artists = dedupeMusicObjects(m.Artists)
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
34
internal/data/song_test.go
Normal file
34
internal/data/song_test.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package data
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSong(t *testing.T) {
|
||||||
|
song := Song{
|
||||||
|
Name: "song_a",
|
||||||
|
Album: Album{
|
||||||
|
Name: "album_a",
|
||||||
|
Artists: []Artist{
|
||||||
|
{Name: "artist_a"},
|
||||||
|
{Name: "artist_a"},
|
||||||
|
{Name: "artist_b"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Artists: []Artist{
|
||||||
|
{Name: "artist_a"},
|
||||||
|
{Name: "artist_a"},
|
||||||
|
{Name: "artist_b"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
compiled := song.Compile().(Song)
|
||||||
|
|
||||||
|
if len(compiled.Artists) != 2 {
|
||||||
|
t.Errorf(`the two artists with the same name have to be merged, %d`, len(compiled.Artists))
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(compiled.Album.Artists) != 2 {
|
||||||
|
t.Errorf(`the two artists with the same names in the album have to be merged, %d`, len(compiled.Album.Artists))
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user