Files
cunicu/internal/config/config_test.go
2022-01-06 15:11:25 +01:00

110 lines
2.1 KiB
Go

package config_test
import (
"testing"
"github.com/pion/ice/v2"
"riasc.eu/wice/internal/config"
)
func TestParseArgsUser(t *testing.T) {
config, err := config.Parse("prog", []string{"-user"})
if err != nil {
t.Errorf("err got %v, want nil", err)
}
if !config.User {
t.Fail()
}
}
func TestParseArgsBackend(t *testing.T) {
config, err := config.Parse("prog", []string{"-backend", "k8s"})
if err != nil {
t.Errorf("err got %v, want nil", err)
}
if config.Backends[0].Scheme != "k8s" {
t.Fail()
}
}
func TestParseArgsUrls(t *testing.T) {
config, err := config.Parse("prog", []string{"-url", "stun:stun.riasc.eu", "-url", "turn:turn.riasc.eu"})
if err != nil {
t.Errorf("err got %v, want nil", err)
}
if len(config.AgentConfig.Urls) != 2 {
t.Fail()
}
if config.AgentConfig.Urls[0].Host != "stun.riasc.eu" {
t.Fail()
}
if config.AgentConfig.Urls[0].Scheme != ice.SchemeTypeSTUN {
t.Fail()
}
if config.AgentConfig.Urls[1].Host != "turn.riasc.eu" {
t.Fail()
}
if config.AgentConfig.Urls[1].Scheme != ice.SchemeTypeTURN {
t.Fail()
}
}
func TestParseArgsCandidateTypes(t *testing.T) {
config, err := config.Parse("prog", []string{"-ice-candidate-type", "host", "-ice-candidate-type", "relay"})
if err != nil {
t.Errorf("err got %v, want nil", err)
}
if len(config.AgentConfig.CandidateTypes) != 2 {
t.Fail()
}
if config.AgentConfig.CandidateTypes[0] != ice.CandidateTypeHost {
t.Fail()
}
if config.AgentConfig.CandidateTypes[1] != ice.CandidateTypeRelay {
t.Fail()
}
}
func TestParseArgsInterfaceFilter(t *testing.T) {
config, err := config.Parse("prog", []string{"-interface-filter", "eth\\d+"})
if err != nil {
t.Errorf("err got %v, want nil", err)
}
if !config.InterfaceRegex.Match([]byte("eth0")) {
t.Fail()
}
if config.InterfaceRegex.Match([]byte("wifi0")) {
t.Fail()
}
}
func TestParseArgsInterfaceFilterFail(t *testing.T) {
_, err := config.Parse("prog", []string{"-interface-filter", "eth("})
if err == nil {
t.Fail()
}
}
func TestParseArgsDefault(t *testing.T) {
config, err := config.Parse("prog", []string{})
if err != nil {
t.Fail()
}
if len(config.AgentConfig.Urls) != 1 {
t.Fail()
}
}