mirror of
https://github.com/hashicorp/terraform.git
synced 2026-04-24 15:47:20 -04:00
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
// Copyright IBM Corp. 2014, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package states
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestResourceInstanceDeposeCurrentObject(t *testing.T) {
|
|
t.Run("nil resource", func(t *testing.T) {
|
|
var nilRI *ResourceInstance
|
|
dk := nilRI.deposeCurrentObject(NotDeposed)
|
|
t.Logf("deposedKey (nil receiver) is %q", dk)
|
|
|
|
if dk != NotDeposed {
|
|
t.Fatalf("expected NotDeposed for nil receiver, got %q", dk)
|
|
}
|
|
})
|
|
obj := &ResourceInstanceObjectSrc{
|
|
// Empty for the sake of this test, because we're just going to
|
|
// compare by pointer below anyway.
|
|
}
|
|
|
|
is := NewResourceInstance()
|
|
is.Current = obj
|
|
var dk DeposedKey
|
|
|
|
t.Run("first depose", func(t *testing.T) {
|
|
dk = is.deposeCurrentObject(NotDeposed) // dk is randomly-generated but should be eight characters long
|
|
t.Logf("deposedKey is %q", dk)
|
|
|
|
if got := is.Current; got != nil {
|
|
t.Errorf("current is %#v; want nil", got)
|
|
}
|
|
if got, want := is.Deposed[dk], obj; got != want {
|
|
t.Errorf("deposed object pointer is %#v; want %#v", got, want)
|
|
}
|
|
if got, want := len(is.Deposed), 1; got != want {
|
|
t.Errorf("wrong len(is.Deposed) %d; want %d", got, want)
|
|
}
|
|
if got, want := len(dk), 8; got != want {
|
|
t.Errorf("wrong len(deposedkey) %d; want %d", got, want)
|
|
}
|
|
})
|
|
|
|
t.Run("second depose", func(t *testing.T) {
|
|
notDK := is.deposeCurrentObject(NotDeposed)
|
|
if notDK != NotDeposed {
|
|
t.Errorf("got deposedKey %q; want NotDeposed", notDK)
|
|
}
|
|
|
|
// Make sure we really did abort early, and haven't corrupted the
|
|
// state somehow.
|
|
if got := is.Current; got != nil {
|
|
t.Errorf("current is %#v; want nil", got)
|
|
}
|
|
if got, want := is.Deposed[dk], obj; got != want {
|
|
t.Errorf("deposed object pointer is %#v; want %#v", got, want)
|
|
}
|
|
if got, want := len(is.Deposed), 1; got != want {
|
|
t.Errorf("wrong len(is.Deposed) %d; want %d", got, want)
|
|
}
|
|
if got, want := len(dk), 8; got != want {
|
|
t.Errorf("wrong len(deposedkey) %d; want %d", got, want)
|
|
}
|
|
})
|
|
}
|