@@ -42,7 +42,7 @@ func TestStateShim(t *testing.T) {
4242 },
4343 },
4444 addrs.AbsProviderConfig {
45- Provider : addrs .NewLegacyProvider ("test" ),
45+ Provider : addrs .NewDefaultProvider ("test" ),
4646 Module : addrs .RootModule ,
4747 },
4848 )
@@ -58,7 +58,7 @@ func TestStateShim(t *testing.T) {
5858 DependsOn : []addrs.Referenceable {},
5959 },
6060 addrs.AbsProviderConfig {
61- Provider : addrs .NewLegacyProvider ("test" ),
61+ Provider : addrs .NewDefaultProvider ("test" ),
6262 Module : addrs .RootModule ,
6363 },
6464 )
@@ -77,7 +77,7 @@ func TestStateShim(t *testing.T) {
7777 DependsOn : []addrs.Referenceable {},
7878 },
7979 addrs.AbsProviderConfig {
80- Provider : addrs .NewLegacyProvider ("test" ),
80+ Provider : addrs .NewDefaultProvider ("test" ),
8181 Module : childInstance .Module (),
8282 },
8383 )
@@ -101,7 +101,7 @@ func TestStateShim(t *testing.T) {
101101 },
102102 },
103103 addrs.AbsProviderConfig {
104- Provider : addrs .NewLegacyProvider ("test" ),
104+ Provider : addrs .NewDefaultProvider ("test" ),
105105 Module : childInstance .Module (),
106106 },
107107 )
@@ -127,7 +127,7 @@ func TestStateShim(t *testing.T) {
127127 },
128128 },
129129 addrs.AbsProviderConfig {
130- Provider : addrs .NewLegacyProvider ("test" ),
130+ Provider : addrs .NewDefaultProvider ("test" ),
131131 Module : childInstance .Module (),
132132 },
133133 )
@@ -144,7 +144,7 @@ func TestStateShim(t *testing.T) {
144144 DependsOn : []addrs.Referenceable {},
145145 },
146146 addrs.AbsProviderConfig {
147- Provider : addrs .NewLegacyProvider ("test" ),
147+ Provider : addrs .NewDefaultProvider ("test" ),
148148 Module : childInstance .Module (),
149149 },
150150 )
@@ -160,7 +160,7 @@ func TestStateShim(t *testing.T) {
160160 DependsOn : []addrs.Referenceable {},
161161 },
162162 addrs.AbsProviderConfig {
163- Provider : addrs .NewLegacyProvider ("test" ),
163+ Provider : addrs .NewDefaultProvider ("test" ),
164164 Module : childInstance .Module (),
165165 },
166166 )
@@ -177,7 +177,7 @@ func TestStateShim(t *testing.T) {
177177 DependsOn : []addrs.Referenceable {},
178178 },
179179 addrs.AbsProviderConfig {
180- Provider : addrs .NewLegacyProvider ("test" ),
180+ Provider : addrs .NewDefaultProvider ("test" ),
181181 Module : childInstance .Module (),
182182 },
183183 )
@@ -332,3 +332,92 @@ func TestStateShim(t *testing.T) {
332332 t .Fatalf ("wrong result state\n got:\n %s\n \n want:\n %s" , shimmed , expected )
333333 }
334334}
335+
336+ // TestShimLegacyState only checks the functionality unique to this func: adding
337+ // the implied provider FQN
338+ func TestShimLegacyState (t * testing.T ) {
339+
340+ input := & terraform.State {
341+ Version : 3 ,
342+ Modules : []* terraform.ModuleState {
343+ & terraform.ModuleState {
344+ Path : []string {"root" },
345+ Resources : map [string ]* terraform.ResourceState {
346+ "test_thing.baz" : & terraform.ResourceState {
347+ Type : "test_thing" ,
348+ Provider : "provider.test" ,
349+ Primary : & terraform.InstanceState {
350+ ID : "baz" ,
351+ Attributes : map [string ]string {
352+ "id" : "baz" ,
353+ "bazzle" : "dazzle" ,
354+ },
355+ },
356+ },
357+ },
358+ },
359+ & terraform.ModuleState {
360+ Path : []string {"root" , "child" },
361+ Resources : map [string ]* terraform.ResourceState {
362+ "test_thing.bar" : & terraform.ResourceState {
363+ Type : "test_thing" ,
364+ Provider : "module.child.provider.test" ,
365+ Primary : & terraform.InstanceState {
366+ ID : "bar" ,
367+ Attributes : map [string ]string {
368+ "id" : "bar" ,
369+ "fizzle" : "wizzle" ,
370+ },
371+ },
372+ },
373+ },
374+ },
375+ },
376+ }
377+
378+ expected := states .NewState ()
379+ root := expected .EnsureModule (addrs .RootModuleInstance )
380+ root .SetResourceInstanceCurrent (
381+ addrs.Resource {
382+ Mode : addrs .ManagedResourceMode ,
383+ Type : "test_thing" ,
384+ Name : "baz" ,
385+ }.Instance (addrs .NoKey ),
386+ & states.ResourceInstanceObjectSrc {
387+ Status : states .ObjectReady ,
388+ AttrsFlat : map [string ]string {"id" : "baz" , "bazzle" : "dazzle" },
389+ DependsOn : []addrs.Referenceable {},
390+ Dependencies : []addrs.ConfigResource {},
391+ },
392+ addrs.AbsProviderConfig {
393+ Provider : addrs .NewDefaultProvider ("test" ),
394+ Module : addrs .RootModule ,
395+ },
396+ )
397+ child := expected .EnsureModule (addrs .RootModuleInstance .Child ("child" , addrs .NoKey ))
398+ child .SetResourceInstanceCurrent (
399+ addrs.Resource {
400+ Mode : addrs .ManagedResourceMode ,
401+ Type : "test_thing" ,
402+ Name : "bar" ,
403+ }.Instance (addrs .NoKey ),
404+ & states.ResourceInstanceObjectSrc {
405+ Status : states .ObjectReady ,
406+ AttrsFlat : map [string ]string {"id" : "bar" , "fizzle" : "wizzle" },
407+ DependsOn : []addrs.Referenceable {},
408+ Dependencies : []addrs.ConfigResource {},
409+ },
410+ addrs.AbsProviderConfig {
411+ Provider : addrs .NewDefaultProvider ("test" ),
412+ Module : child .Addr .Module (),
413+ },
414+ )
415+
416+ got , err := shimLegacyState (input )
417+ if err != nil {
418+ t .Fatalf ("unexpected error: %s" , err )
419+ }
420+ if ! got .Equal (expected ) {
421+ t .Fatal ("wrong result" )
422+ }
423+ }
0 commit comments