Refactor many if/else and switch for the session modules

This commit is contained in:
Edznux 2018-10-23 05:00:05 +02:00
commit 1e12891bfb
10 changed files with 162 additions and 140 deletions

View file

@ -22,17 +22,20 @@ func setup(t testing.TB, envFile bool, envFileData bool) {
teardown(t)
if envFile {
if fp, err := os.OpenFile(testEnvFile, os.O_RDONLY|os.O_CREATE, 0666); err == nil {
fp.Close()
} else {
fp, err := os.OpenFile(testEnvFile, os.O_RDONLY|os.O_CREATE, 0666);
if err != nil {
panic(err)
}
fp.Close()
}
if envFileData {
if raw, err := json.Marshal(testEnvData); err != nil {
raw, err := json.Marshal(testEnvData)
if err != nil {
panic(err)
} else if err = ioutil.WriteFile(testEnvFile, raw, 0755); err != nil {
}
err = ioutil.WriteFile(testEnvFile, raw, 0755);
if err != nil {
panic(err)
}
}
@ -45,64 +48,71 @@ func teardown(t testing.TB) {
}
func TestSessionEnvironmentWithoutFile(t *testing.T) {
if env, err := NewEnvironment(""); env == nil {
t.Fatal("expected valid environment")
} else if err != nil {
env, err := NewEnvironment("")
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != 0 {
}
if len(env.Data) != 0 {
t.Fatalf("expected empty environment, found %d elements", len(env.Data))
}
t.Fatal("expected valid environment")
}
func TestSessionEnvironmentWithInvalidFile(t *testing.T) {
if env, err := NewEnvironment("/idontexist"); env == nil {
t.Fatal("expected valid environment")
} else if err != nil {
env, err := NewEnvironment("/idontexist")
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != 0 {
}
if len(env.Data) != 0 {
t.Fatalf("expected empty environment, found %d elements", len(env.Data))
}
t.Fatal("expected valid environment")
}
func TestSessionEnvironmentWithEmptyFile(t *testing.T) {
setup(t, true, false)
defer teardown(t)
if env, err := NewEnvironment(testEnvFile); env == nil {
t.Fatal("expected environment")
} else if err != nil {
env, err := NewEnvironment(testEnvFile)
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != 0 {
}
if len(env.Data) != 0 {
t.Fatalf("expected empty environment, found %d elements", len(env.Data))
}
t.Fatal("expected environment")
}
func TestSessionEnvironmentWithDataFile(t *testing.T) {
setup(t, true, true)
defer teardown(t)
if env, err := NewEnvironment(testEnvFile); env == nil {
t.Fatal("expected environment")
} else if err != nil {
env, err := NewEnvironment(testEnvFile)
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != len(testEnvData) {
}
if len(env.Data) != len(testEnvData) {
t.Fatalf("expected %d, found %d", len(testEnvData), len(env.Data))
} else if !reflect.DeepEqual(env.Data, testEnvData) {
}
if !reflect.DeepEqual(env.Data, testEnvData) {
t.Fatalf("unexpected contents: %v", env.Data)
}
t.Fatal("expected environment")
}
func TestSessionEnvironmentSaveWithError(t *testing.T) {
setup(t, false, false)
defer teardown(t)
if env, err := NewEnvironment(testEnvFile); env == nil {
t.Fatal("expected environment")
} else if err != nil {
env, err := NewEnvironment(testEnvFile)
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if err = env.Save("/lulz/nope"); err == nil {
}
if err = env.Save("/lulz/nope"); err == nil {
t.Fatal("expected error")
}
t.Fatal("expected environment")
}
func TestSessionEnvironmentSave(t *testing.T) {
@ -110,24 +120,24 @@ func TestSessionEnvironmentSave(t *testing.T) {
defer teardown(t)
env, err := NewEnvironment(testEnvFile)
if env == nil {
t.Fatal("expected environment")
} else if err != nil {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
t.Log("expected environment")
env.Data["new"] = "value"
if err = env.Save(testEnvFile); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if env, err := NewEnvironment(testEnvFile); env == nil {
t.Fatal("expected environment")
} else if err != nil {
env, err = NewEnvironment(testEnvFile)
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if !reflect.DeepEqual(env.Data, map[string]string{"new": "value"}) {
}
if !reflect.DeepEqual(env.Data, map[string]string{"new": "value"}) {
t.Fatalf("unexpected contents: %v", env.Data)
}
t.Log("expected environment")
}
func TestSessionEnvironmentHas(t *testing.T) {
@ -135,14 +145,14 @@ func TestSessionEnvironmentHas(t *testing.T) {
defer teardown(t)
env, err := NewEnvironment(testEnvFile)
if env == nil {
t.Fatal("expected environment")
} else if err != nil {
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != len(testEnvData) {
}
if len(env.Data) != len(testEnvData) {
t.Fatalf("expected %d, found %d", len(testEnvData), len(env.Data))
}
t.Log("expected environment")
for k := range testEnvData {
if !env.Has(k) {
t.Fatalf("could not find key '%s'", k)
@ -161,19 +171,24 @@ func TestSessionEnvironmentSet(t *testing.T) {
defer teardown(t)
env, err := NewEnvironment(testEnvFile)
if env == nil {
t.Fatal("expected environment")
} else if err != nil {
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if old := env.Set("people", "ok"); old != "shit" {
}
old := env.Set("people", "ok")
if old != "shit" {
t.Fatalf("unexpected old value: %s", old)
} else if env.Data["people"] != "ok" {
}
if env.Data["people"] != "ok" {
t.Fatalf("unexpected new value: %s", env.Data["people"])
} else if old := env.Set("newkey", "nk"); old != "" {
}
old = env.Set("newkey", "nk")
if old != "" {
t.Fatalf("unexpected old value: %s", old)
} else if env.Data["newkey"] != "nk" {
}
if env.Data["newkey"] != "nk" {
t.Fatalf("unexpected new value: %s", env.Data["newkey"])
}
t.Log("expected environment")
}
func TestSessionEnvironmentSetWithCallback(t *testing.T) {
@ -181,11 +196,10 @@ func TestSessionEnvironmentSetWithCallback(t *testing.T) {
defer teardown(t)
env, err := NewEnvironment(testEnvFile)
if env == nil {
t.Fatal("expected environment")
} else if err != nil {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
t.Log("expected environment")
cbCalled := false
old := env.WithCallback("people", "ok", func(newValue string) {
@ -199,7 +213,8 @@ func TestSessionEnvironmentSetWithCallback(t *testing.T) {
old = env.Set("people", "shitagain")
if old != "ok" {
t.Fatalf("unexpected old value: %s", old)
} else if !cbCalled {
}
if !cbCalled {
t.Fatal("callback has not been called")
}
@ -215,24 +230,27 @@ func TestSessionEnvironmentGet(t *testing.T) {
defer teardown(t)
env, err := NewEnvironment(testEnvFile)
if env == nil {
t.Fatal("expected environment")
} else if err != nil {
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != len(testEnvData) {
}
if len(env.Data) != len(testEnvData) {
t.Fatalf("expected %d, found %d", len(testEnvData), len(env.Data))
}
t.Log("expected environment")
for k, v := range testEnvData {
if found, vv := env.Get(k); !found {
found, vv := env.Get(k)
if !found {
t.Fatalf("should have found %s", k)
} else if v != vv {
}
if v != vv {
t.Fatalf("unexpected value found: %s", vv)
}
}
for _, k := range []string{"these", "keys", "should", "not", "be", "found"} {
if found, _ := env.Get(k); found {
found, _ := env.Get(k)
if found {
t.Fatalf("should not have found %s", k)
}
}
@ -243,13 +261,13 @@ func TestSessionEnvironmentGetInt(t *testing.T) {
defer teardown(t)
env, err := NewEnvironment(testEnvFile)
if env == nil {
t.Fatal("expected environment")
} else if err != nil {
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != len(testEnvData) {
}
if len(env.Data) != len(testEnvData) {
t.Fatalf("expected %d, found %d", len(testEnvData), len(env.Data))
}
t.Log("expected environment")
for k := range testEnvData {
if err, _ := env.GetInt(k); err == nil {
@ -258,9 +276,11 @@ func TestSessionEnvironmentGetInt(t *testing.T) {
}
env.Data["num"] = "1234"
if err, i := env.GetInt("num"); err != nil {
err, i := env.GetInt("num");
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if i != 1234 {
}
if i != 1234 {
t.Fatalf("unexpected integer: %d", i)
}
}
@ -270,13 +290,14 @@ func TestSessionEnvironmentSorted(t *testing.T) {
defer teardown(t)
env, err := NewEnvironment(testEnvFile)
if env == nil {
t.Fatal("expected environment")
} else if err != nil {
if err != nil {
t.Fatalf("unexpected error: %v", err)
} else if len(env.Data) != len(testEnvData) {
}
if len(env.Data) != len(testEnvData) {
t.Fatalf("expected %d, found %d", len(testEnvData), len(env.Data))
} else if sorted := env.Sorted(); !reflect.DeepEqual(sorted, testEnvSorted) {
}
if sorted := env.Sorted(); !reflect.DeepEqual(sorted, testEnvSorted) {
t.Fatalf("unexpected sorted keys: %v", sorted)
}
t.Log("expected environment")
}