| package jsonconfig |
| |
| import ( |
| "testing" |
| ) |
| |
| func TestFindSourceProviderConfig(t *testing.T) { |
| tests := []struct { |
| StartKey string |
| FullName string |
| ProviderMap map[string]providerConfig |
| Want string |
| }{ |
| { |
| StartKey: "null", |
| FullName: "hashicorp/null", |
| ProviderMap: map[string]providerConfig{}, |
| Want: "", |
| }, |
| { |
| StartKey: "null", |
| FullName: "hashicorp/null", |
| ProviderMap: map[string]providerConfig{ |
| "null": { |
| Name: "null", |
| FullName: "hashicorp/null", |
| ModuleAddress: "", |
| }, |
| }, |
| Want: "null", |
| }, |
| { |
| StartKey: "null2", |
| FullName: "hashicorp/null", |
| ProviderMap: map[string]providerConfig{ |
| "null": { |
| Name: "null", |
| FullName: "hashicorp/null", |
| ModuleAddress: "", |
| }, |
| }, |
| Want: "", |
| }, |
| { |
| StartKey: "null", |
| FullName: "hashicorp2/null", |
| ProviderMap: map[string]providerConfig{ |
| "null": { |
| Name: "null", |
| FullName: "hashicorp/null", |
| ModuleAddress: "", |
| }, |
| }, |
| Want: "", |
| }, |
| { |
| StartKey: "module.a:null", |
| FullName: "hashicorp/null", |
| ProviderMap: map[string]providerConfig{ |
| "null": { |
| Name: "null", |
| FullName: "hashicorp/null", |
| ModuleAddress: "", |
| }, |
| "module.a:null": { |
| Name: "module.a:null", |
| FullName: "hashicorp/null", |
| ModuleAddress: "module.a", |
| parentKey: "null", |
| }, |
| }, |
| Want: "null", |
| }, |
| { |
| StartKey: "module.a:null", |
| FullName: "hashicorp2/null", |
| ProviderMap: map[string]providerConfig{ |
| "null": { |
| Name: "null", |
| FullName: "hashicorp/null", |
| ModuleAddress: "", |
| }, |
| "module.a:null": { |
| Name: "module.a:null", |
| FullName: "hashicorp2/null", |
| ModuleAddress: "module.a", |
| parentKey: "null", |
| }, |
| }, |
| Want: "module.a:null", |
| }, |
| } |
| |
| for _, test := range tests { |
| got := findSourceProviderKey(test.StartKey, test.FullName, test.ProviderMap) |
| if got != test.Want { |
| t.Errorf("wrong result:\nGot: %#v\nWant: %#v\n", got, test.Want) |
| } |
| } |
| } |