github.com/muratcelep/terraform@v1.1.0-beta2-not-internal-4/not-internal/backend/init/init_test.go (about)

     1  package init
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  func TestInit_backend(t *testing.T) {
     9  	// Initialize the backends map
    10  	Init(nil)
    11  
    12  	backends := []struct {
    13  		Name string
    14  		Type string
    15  	}{
    16  		{"local", "*local.Local"},
    17  		{"remote", "*remote.Remote"},
    18  		{"azurerm", "*azure.Backend"},
    19  		{"consul", "*consul.Backend"},
    20  		{"cos", "*cos.Backend"},
    21  		{"etcdv3", "*etcd.Backend"},
    22  		{"gcs", "*gcs.Backend"},
    23  		{"inmem", "*inmem.Backend"},
    24  		{"manta", "*manta.Backend"},
    25  		{"pg", "*pg.Backend"},
    26  		{"s3", "*s3.Backend"},
    27  		{"swift", "*swift.Backend"},
    28  		{"azure", "init.deprecatedBackendShim"},
    29  	}
    30  
    31  	// Make sure we get the requested backend
    32  	for _, b := range backends {
    33  		t.Run(b.Name, func(t *testing.T) {
    34  			f := Backend(b.Name)
    35  			if f == nil {
    36  				t.Fatalf("backend %q is not present; should be", b.Name)
    37  			}
    38  			bType := reflect.TypeOf(f()).String()
    39  			if bType != b.Type {
    40  				t.Fatalf("expected backend %q to be %q, got: %q", b.Name, b.Type, bType)
    41  			}
    42  		})
    43  	}
    44  }