From 610c6ced093552ce710bf7cc4226f59fddd07c3e Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Tue, 12 Apr 2016 11:53:42 -0600 Subject: [PATCH] fix(environment): add tests for Environment --- cmd/tiller/environment/environment_test.go | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/cmd/tiller/environment/environment_test.go b/cmd/tiller/environment/environment_test.go index d265fd26a..df240f209 100644 --- a/cmd/tiller/environment/environment_test.go +++ b/cmd/tiller/environment/environment_test.go @@ -14,7 +14,29 @@ func (e *mockEngine) Render(chrt *hapi.Chart, v *hapi.Values) ([]byte, error) { return e.out, nil } +type mockReleaseStorage struct { + rel *hapi.Release +} + +func (r *mockReleaseStorage) Get(k string) (*hapi.Release, error) { + return r.rel, nil +} + +func (r *mockReleaseStorage) Set(k string, v *hapi.Release) error { + r.rel = v + return nil +} + +type mockKubeClient struct { +} + +func (k *mockKubeClient) Install(manifest []byte) error { + return nil +} + var _ Engine = &mockEngine{} +var _ ReleaseStorage = &mockReleaseStorage{} +var _ KubeClient = &mockKubeClient{} func TestEngine(t *testing.T) { eng := &mockEngine{out: []byte("test")} @@ -30,3 +52,31 @@ func TestEngine(t *testing.T) { t.Errorf("expected 'test', got %q", string(out)) } } + +func TestReleaseStorage(t *testing.T) { + rs := &mockReleaseStorage{} + env := New() + env.Releases = rs + + release := &hapi.Release{Name: "mariner"} + + if err := env.Releases.Set("albatross", release); err != nil { + t.Fatalf("failed to store release: %s", err) + } + + if v, err := env.Releases.Get("albatross"); err != nil { + t.Errorf("Error fetching release: %s", err) + } else if v.Name != "mariner" { + t.Errorf("Expected mariner, got %q", v.Name) + } +} + +func TestKubeClient(t *testing.T) { + kc := &mockKubeClient{} + env := New() + env.KubeClient = kc + + if err := env.KubeClient.Install([]byte("apiVersion: v1\n")); err != nil { + t.Errorf("Kubeclient failed: %s", err) + } +}