aboutsummaryrefslogtreecommitdiff
path: root/wrms_test.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-07-01 18:54:52 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-07-01 18:54:52 +0200
commitd491f136b40b9bff6ec0ff1e0a4f26cf855a9ffc (patch)
treee7fa41adc1a7aeb940095c1151958e74b254034a /wrms_test.go
parenta95fc844baf1f96510d59ba77a05755cd24fb777 (diff)
downloadWRMS-d491f136b40b9bff6ec0ff1e0a4f26cf855a9ffc.tar.gz
WRMS-d491f136b40b9bff6ec0ff1e0a4f26cf855a9ffc.zip
add simple wrms test
Diffstat (limited to 'wrms_test.go')
-rw-r--r--wrms_test.go85
1 files changed, 85 insertions, 0 deletions
diff --git a/wrms_test.go b/wrms_test.go
new file mode 100644
index 0000000..edb174f
--- /dev/null
+++ b/wrms_test.go
@@ -0,0 +1,85 @@
+package main
+
+import (
+ "github.com/google/uuid"
+ "io"
+ "muhq.space/go/wrms/llog"
+ "testing"
+)
+
+type mockPlayer struct{}
+
+func (p *mockPlayer) Play(*Song) {}
+func (p *mockPlayer) PlayUri(string) {}
+func (p *mockPlayer) PlayData(io.Reader) {}
+func (p *mockPlayer) Search(pattern string) (res chan []Song) { return }
+func (p *mockPlayer) Playing() bool { return false }
+func (p *mockPlayer) Pause() {}
+func (p *mockPlayer) Continue() {}
+func (p *mockPlayer) Stop() {}
+
+var alice, _ = uuid.NewRandom()
+
+func TestWrmsAdd(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ wrms.AddSong(s1)
+
+ if len(wrms.queue) != 1 {
+ t.Log("len should be 1")
+ t.Fail()
+ }
+}
+
+func TestWrmsAdjust(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ wrms.AddSong(s1)
+
+ wrms.AdjustSongWeight(alice, s1.Uri, "up")
+ if wrms.queue[0].Weight != 1 {
+ t.Log("song weight should be 1")
+ t.Fail()
+ }
+}
+
+func TestWrmsUpDownNext(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ s2 := NewDummySong("song2", "snfmt")
+ wrms.AddSong(s1)
+ wrms.AddSong(s2)
+
+ wrms.AdjustSongWeight(alice, s1.Uri, "down")
+ wrms.AdjustSongWeight(alice, s2.Uri, "up")
+ wrms.Next()
+ if wrms.CurrentSong.Load().Uri != s2.Uri {
+ t.Log("Not retrning the upvoted song s2")
+ t.Fail()
+ }
+}
+
+func TestWrmsUpUpDownNextNext(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ s2 := NewDummySong("song2", "snfmt")
+ s3 := NewDummySong("song3", "snfmt")
+ wrms.AddSong(s1)
+ wrms.AddSong(s2)
+ wrms.AddSong(s3)
+
+ llog.Info("UpUpDown test")
+ wrms.AdjustSongWeight(alice, s1.Uri, "up")
+ wrms.AdjustSongWeight(alice, s2.Uri, "down")
+ wrms.AdjustSongWeight(alice, s3.Uri, "up")
+ wrms.Next()
+ if wrms.CurrentSong.Load().Uri == s2.Uri {
+ t.Log("Playing the downvoted song s2")
+ t.Fail()
+ }
+ wrms.Next()
+ if wrms.CurrentSong.Load().Uri == s2.Uri {
+ t.Log("Playing the downvoted song s2")
+ t.Fail()
+ }
+}