github.com/adamar/terraform@v0.2.2-0.20141016210445-2e703afdad0e/rpc/client_test.go (about) 1 package rpc 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/hashicorp/terraform/terraform" 8 ) 9 10 func TestClient_ResourceProvider(t *testing.T) { 11 clientConn, serverConn := testConn(t) 12 13 p := new(terraform.MockResourceProvider) 14 server := &Server{ProviderFunc: testProviderFixed(p)} 15 go server.ServeConn(serverConn) 16 17 client, err := NewClient(clientConn) 18 if err != nil { 19 t.Fatalf("err: %s", err) 20 } 21 defer client.Close() 22 23 provider, err := client.ResourceProvider() 24 if err != nil { 25 t.Fatalf("err: %s", err) 26 } 27 28 // Configure 29 config := &terraform.ResourceConfig{ 30 Raw: map[string]interface{}{"foo": "bar"}, 31 } 32 e := provider.Configure(config) 33 if !p.ConfigureCalled { 34 t.Fatal("configure should be called") 35 } 36 if !reflect.DeepEqual(p.ConfigureConfig, config) { 37 t.Fatalf("bad: %#v", p.ConfigureConfig) 38 } 39 if e != nil { 40 t.Fatalf("bad: %#v", e) 41 } 42 } 43 44 func TestClient_ResourceProvisioner(t *testing.T) { 45 clientConn, serverConn := testConn(t) 46 47 p := new(terraform.MockResourceProvisioner) 48 server := &Server{ProvisionerFunc: testProvisionerFixed(p)} 49 go server.ServeConn(serverConn) 50 51 client, err := NewClient(clientConn) 52 if err != nil { 53 t.Fatalf("err: %s", err) 54 } 55 defer client.Close() 56 57 provisioner, err := client.ResourceProvisioner() 58 if err != nil { 59 t.Fatalf("err: %s", err) 60 } 61 62 // Apply 63 output := &terraform.MockUIOutput{} 64 state := &terraform.InstanceState{} 65 conf := &terraform.ResourceConfig{} 66 err = provisioner.Apply(output, state, conf) 67 if !p.ApplyCalled { 68 t.Fatal("apply should be called") 69 } 70 if !reflect.DeepEqual(p.ApplyConfig, conf) { 71 t.Fatalf("bad: %#v", p.ApplyConfig) 72 } 73 if err != nil { 74 t.Fatalf("bad: %#v", err) 75 } 76 }