func TestState(t *testing.T) { s := &State{ Client: new(InmemClient), state: state.TestStateInitial(), readState: state.TestStateInitial(), } if err := s.PersistState(); err != nil { t.Fatalf("err: %s", err) } state.TestState(t, s) }
// testClient is a generic function to test any client. func testClient(t *testing.T, c Client) { var buf bytes.Buffer s := state.TestStateInitial() if err := terraform.WriteState(s, &buf); err != nil { t.Fatalf("err: %s", err) } data := buf.Bytes() if err := c.Put(data); err != nil { t.Fatalf("put: %s", err) } p, err := c.Get() if err != nil { t.Fatalf("get: %s", err) } if !bytes.Equal(p.Data, data) { t.Fatalf("bad: %#v", p) } if err := c.Delete(); err != nil { t.Fatalf("delete: %s", err) } p, err = c.Get() if err != nil { t.Fatalf("get: %s", err) } if p != nil { t.Fatalf("bad: %#v", p) } }
func TestStateHook(t *testing.T) { is := &state.InmemState{} var hook terraform.Hook = &StateHook{State: is} s := state.TestStateInitial() action, err := hook.PostStateUpdate(s) if err != nil { t.Fatalf("err: %s", err) } if action != terraform.HookActionContinue { t.Fatalf("bad: %v", action) } if !is.State().Equal(s) { t.Fatalf("bad state: %#v", is.State()) } }