package node

import (
	"strings"
	"testing"

	"git.autistici.org/ale/autoradio"
)

func TestIcecastConfig(t *testing.T) {
	mount := &autoradio.Mount{
		Name:     "/test.ogg",
		Username: "user",
		Password: "pass",
	}
	c := newClusterConfig()
	c.setMountIfChanged(mount)

	// Test a relay config.
	ice := newIcecastConfig("1.2.3.4", 1000)
	ice.Update(c, false, "2.3.4.5")
	output, err := ice.Encode()
	if err != nil {
		t.Fatal(err)
	}
	outputs := string(output)
	if !strings.Contains(outputs, "<icecast>") {
		t.Fatalf("No <icecast> element:\n%s", output)
	}
	if !strings.Contains(outputs, "<relay>") {
		t.Fatalf("Mount not configured as relay:\n%s", output)
	}

	// Test a master config.
	ice = newIcecastConfig("1.2.3.4", 1000)
	ice.Update(c, true, "2.3.4.5")
	output, err = ice.Encode()
	if err != nil {
		t.Fatal(err)
	}
	outputs = string(output)
	if !strings.Contains(outputs, "<mount>") {
		t.Fatalf("Mount not configured as master:\n%s", output)
	}
}