From cd4d9308351b8ed1f3c906f0dd220188380feb48 Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Tue, 6 Oct 2020 16:25:22 +0200 Subject: [PATCH] Update reload tests - Add test that reloads without changes. - Add test that removes backend from shared host. --- src/signaling/backend_configuration_test.go | 70 ++++++++++++++++++++- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/src/signaling/backend_configuration_test.go b/src/signaling/backend_configuration_test.go index 225c475..208376e 100644 --- a/src/signaling/backend_configuration_test.go +++ b/src/signaling/backend_configuration_test.go @@ -189,6 +189,37 @@ func TestParseBackendIds(t *testing.T) { } } +func TestBackendReloadNoChange(t *testing.T) { + original_config := goconf.NewConfigFile() + original_config.AddOption("backend", "backends", "backend1, backend2") + original_config.AddOption("backend", "allowall", "false") + original_config.AddOption("backend1", "url", "http://domain1.invalid") + original_config.AddOption("backend1", "secret", string(testBackendSecret)+"-backend1") + original_config.AddOption("backend2", "url", "http://domain2.invalid") + original_config.AddOption("backend2", "secret", string(testBackendSecret)+"-backend2") + o_cfg, err := NewBackendConfiguration(original_config) + if err != nil { + t.Fatal(err) + } + + new_config := goconf.NewConfigFile() + new_config.AddOption("backend", "backends", "backend1, backend2") + new_config.AddOption("backend", "allowall", "false") + new_config.AddOption("backend1", "url", "http://domain1.invalid") + new_config.AddOption("backend1", "secret", string(testBackendSecret)+"-backend1") + new_config.AddOption("backend2", "url", "http://domain2.invalid") + new_config.AddOption("backend2", "secret", string(testBackendSecret)+"-backend2") + n_cfg, err := NewBackendConfiguration(new_config) + if err != nil { + t.Fatal(err) + } + + o_cfg.Reload(original_config) + if !reflect.DeepEqual(n_cfg, o_cfg) { + t.Error("BackendConfiguration should be equal after Reload") + } +} + func TestBackendReloadChangeExistingURL(t *testing.T) { original_config := goconf.NewConfigFile() original_config.AddOption("backend", "backends", "backend1, backend2") @@ -291,13 +322,13 @@ func TestBackendReloadAddBackend(t *testing.T) { } } -func TestBackendReloadRemove(t *testing.T) { +func TestBackendReloadRemoveHost(t *testing.T) { original_config := goconf.NewConfigFile() original_config.AddOption("backend", "backends", "backend1, backend2") original_config.AddOption("backend", "allowall", "false") original_config.AddOption("backend1", "url", "http://domain1.invalid") original_config.AddOption("backend1", "secret", string(testBackendSecret)+"-backend1") - original_config.AddOption("backend2", "url", "http://domain1.invalid") + original_config.AddOption("backend2", "url", "http://domain2.invalid") original_config.AddOption("backend2", "secret", string(testBackendSecret)+"-backend2") o_cfg, err := NewBackendConfiguration(original_config) if err != nil { @@ -314,6 +345,41 @@ func TestBackendReloadRemove(t *testing.T) { t.Fatal(err) } + original_config.RemoveOption("backend", "backends") + original_config.AddOption("backend", "backends", "backend1") + original_config.RemoveSection("backend2") + + o_cfg.Reload(original_config) + if !reflect.DeepEqual(n_cfg, o_cfg) { + t.Error("BackendConfiguration should be equal after Reload") + } +} + +func TestBackendReloadRemoveBackendFromSharedHost(t *testing.T) { + original_config := goconf.NewConfigFile() + original_config.AddOption("backend", "backends", "backend1, backend2") + original_config.AddOption("backend", "allowall", "false") + original_config.AddOption("backend1", "url", "http://domain1.invalid/foo/") + original_config.AddOption("backend1", "secret", string(testBackendSecret)+"-backend1") + original_config.AddOption("backend2", "url", "http://domain1.invalid/bar/") + original_config.AddOption("backend2", "secret", string(testBackendSecret)+"-backend2") + o_cfg, err := NewBackendConfiguration(original_config) + if err != nil { + t.Fatal(err) + } + + new_config := goconf.NewConfigFile() + new_config.AddOption("backend", "backends", "backend1") + new_config.AddOption("backend", "allowall", "false") + new_config.AddOption("backend1", "url", "http://domain1.invalid/foo/") + new_config.AddOption("backend1", "secret", string(testBackendSecret)+"-backend1") + n_cfg, err := NewBackendConfiguration(new_config) + if err != nil { + t.Fatal(err) + } + + original_config.RemoveOption("backend", "backends") + original_config.AddOption("backend", "backends", "backend1") original_config.RemoveSection("backend2") o_cfg.Reload(original_config)