summaryrefslogtreecommitdiff
path: root/vendor/github.com/hashicorp/terraform/backend/remote-state/inmem/backend_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/backend/remote-state/inmem/backend_test.go')
-rw-r--r--vendor/github.com/hashicorp/terraform/backend/remote-state/inmem/backend_test.go90
1 files changed, 90 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/terraform/backend/remote-state/inmem/backend_test.go b/vendor/github.com/hashicorp/terraform/backend/remote-state/inmem/backend_test.go
new file mode 100644
index 00000000..005e66a1
--- /dev/null
+++ b/vendor/github.com/hashicorp/terraform/backend/remote-state/inmem/backend_test.go
@@ -0,0 +1,90 @@
+package inmem
+
+import (
+ "testing"
+
+ "github.com/hashicorp/terraform/backend"
+ "github.com/hashicorp/terraform/state/remote"
+ "github.com/hashicorp/terraform/terraform"
+)
+
+func TestBackend_impl(t *testing.T) {
+ var _ backend.Backend = new(Backend)
+}
+
+func TestBackendConfig(t *testing.T) {
+ defer Reset()
+ testID := "test_lock_id"
+
+ config := map[string]interface{}{
+ "lock_id": testID,
+ }
+
+ b := backend.TestBackendConfig(t, New(), config).(*Backend)
+
+ s, err := b.State(backend.DefaultStateName)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ c := s.(*remote.State).Client.(*RemoteClient)
+ if c.Name != backend.DefaultStateName {
+ t.Fatal("client name is not configured")
+ }
+
+ if err := locks.unlock(backend.DefaultStateName, testID); err != nil {
+ t.Fatalf("default state should have been locked: %s", err)
+ }
+}
+
+func TestBackend(t *testing.T) {
+ defer Reset()
+ b := backend.TestBackendConfig(t, New(), nil).(*Backend)
+ backend.TestBackend(t, b, nil)
+}
+
+func TestBackendLocked(t *testing.T) {
+ defer Reset()
+ b1 := backend.TestBackendConfig(t, New(), nil).(*Backend)
+ b2 := backend.TestBackendConfig(t, New(), nil).(*Backend)
+
+ backend.TestBackend(t, b1, b2)
+}
+
+// use the this backen to test the remote.State implementation
+func TestRemoteState(t *testing.T) {
+ defer Reset()
+ b := backend.TestBackendConfig(t, New(), nil)
+
+ workspace := "workspace"
+
+ // create a new workspace in this backend
+ s, err := b.State(workspace)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // force overwriting the remote state
+ newState := terraform.NewState()
+
+ if err := s.WriteState(newState); err != nil {
+ t.Fatal(err)
+ }
+
+ if err := s.PersistState(); err != nil {
+ t.Fatal(err)
+ }
+
+ if err := s.RefreshState(); err != nil {
+ t.Fatal(err)
+ }
+
+ savedState := s.State()
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if savedState.Lineage != newState.Lineage {
+ t.Fatal("saved state has incorrect lineage")
+ }
+}