github.com/serbaut/terraform@v0.6.12-0.20160607213102-ac2d195cc560/builtin/providers/vsphere/resource_vsphere_virtual_machine_migrate_test.go (about) 1 package vsphere 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/terraform/terraform" 7 ) 8 9 func TestVSphereVirtualMachineMigrateState(t *testing.T) { 10 cases := map[string]struct { 11 StateVersion int 12 Attributes map[string]string 13 Expected map[string]string 14 Meta interface{} 15 }{ 16 "skip_customization before 0.6.16": { 17 StateVersion: 0, 18 Attributes: map[string]string{}, 19 Expected: map[string]string{ 20 "skip_customization": "false", 21 }, 22 }, 23 "disk controller_type": { 24 StateVersion: 0, 25 Attributes: map[string]string{ 26 "disk.1234.size": "0", 27 "disk.5678.size": "0", 28 "disk.9999.size": "0", 29 "disk.9999.controller_type": "ide", 30 }, 31 Expected: map[string]string{ 32 "disk.1234.size": "0", 33 "disk.1234.controller_type": "scsi", 34 "disk.5678.size": "0", 35 "disk.5678.controller_type": "scsi", 36 "disk.9999.size": "0", 37 "disk.9999.controller_type": "ide", 38 }, 39 }, 40 } 41 42 for tn, tc := range cases { 43 is := &terraform.InstanceState{ 44 ID: "i-abc123", 45 Attributes: tc.Attributes, 46 } 47 is, err := resourceVSphereVirtualMachineMigrateState( 48 tc.StateVersion, is, tc.Meta) 49 50 if err != nil { 51 t.Fatalf("bad: %s, err: %#v", tn, err) 52 } 53 54 for k, v := range tc.Expected { 55 if is.Attributes[k] != v { 56 t.Fatalf( 57 "bad: %s\n\n expected: %#v -> %#v\n got: %#v -> %#v\n in: %#v", 58 tn, k, v, k, is.Attributes[k], is.Attributes) 59 } 60 } 61 } 62 } 63 64 func TestComputeInstanceMigrateState_empty(t *testing.T) { 65 var is *terraform.InstanceState 66 var meta interface{} 67 68 // should handle nil 69 is, err := resourceVSphereVirtualMachineMigrateState(0, is, meta) 70 71 if err != nil { 72 t.Fatalf("err: %#v", err) 73 } 74 if is != nil { 75 t.Fatalf("expected nil instancestate, got: %#v", is) 76 } 77 78 // should handle non-nil but empty 79 is = &terraform.InstanceState{} 80 is, err = resourceVSphereVirtualMachineMigrateState(0, is, meta) 81 82 if err != nil { 83 t.Fatalf("err: %#v", err) 84 } 85 }