From 840f33de326233d5fee1144334db41bf5c82a8fa Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 25 Feb 2019 18:45:32 +0100 Subject: conf: introduce configuration management --- conf/store_test.go | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 conf/store_test.go (limited to 'conf/store_test.go') diff --git a/conf/store_test.go b/conf/store_test.go new file mode 100644 index 00000000..fdef7ea7 --- /dev/null +++ b/conf/store_test.go @@ -0,0 +1,91 @@ +/* SPDX-License-Identifier: MIT + * + * Copyright (C) 2019 WireGuard LLC. All Rights Reserved. + */ + +package conf + +import ( + "reflect" + "testing" +) + +func TestStorage(t *testing.T) { + c, err := FromWgQuick(testInput, "golangTest") + if err != nil { + t.Errorf("Unable to parse test config: %s", err.Error()) + return + } + + err = c.Save() + if err != nil { + t.Errorf("Unable to save config: %s", err.Error()) + } + + configs, err := ListConfigNames() + if err != nil { + t.Errorf("Unable to list configs: %s", err.Error()) + } + + found := false + for _, name := range configs { + if name == "golangTest" { + found = true + break + } + } + if !found { + t.Error("Unable to find saved config in list") + } + + loaded, err := LoadFromName("golangTest") + if err != nil { + t.Errorf("Unable to load config: %s", err.Error()) + return + } + + if !reflect.DeepEqual(loaded, c) { + t.Error("Loaded config is not the same as saved config") + } + + k, err := NewPrivateKey() + if err != nil { + t.Errorf("Unable to generate new private key: %s", err.Error()) + } + c.Interface.PrivateKey = *k + + err = c.Save() + if err != nil { + t.Errorf("Unable to save config a second time: %s", err.Error()) + } + + loaded, err = LoadFromName("golangTest") + if err != nil { + t.Errorf("Unable to load config a second time: %s", err.Error()) + return + } + + if !reflect.DeepEqual(loaded, c) { + t.Error("Second loaded config is not the same as second saved config") + } + + err = DeleteName("golangTest") + if err != nil { + t.Errorf("Unable to delete config: %s", err.Error()) + } + + configs, err = ListConfigNames() + if err != nil { + t.Errorf("Unable to list configs: %s", err.Error()) + } + found = false + for _, name := range configs { + if name == "golangTest" { + found = true + break + } + } + if found { + t.Error("Config wasn't actually deleted") + } +} -- cgit v1.2.3-59-g8ed1b