forked from hashicorp/terraform-provider-azurerm
/
virtual_machine_instance_test.go
81 lines (73 loc) · 2.01 KB
/
virtual_machine_instance_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package compute
import (
"testing"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
)
func TestVirtualMachineShouldBeStarted(t *testing.T) {
var buildInstanceViewStatus = func(statuses ...string) *[]compute.InstanceViewStatus {
results := make([]compute.InstanceViewStatus, 0)
for _, v := range statuses {
results = append(results, compute.InstanceViewStatus{
Code: utils.String(v),
})
}
return &results
}
testCases := []struct {
Name string
Input *[]compute.InstanceViewStatus
Expected bool
}{
{
Name: "None",
Expected: false,
Input: nil,
},
{
Name: "No Power State",
Input: buildInstanceViewStatus("ProvisioningStatus/Creating"),
Expected: false,
},
{
Name: "Running",
Input: buildInstanceViewStatus("ProvisioningStatus/succeeded", "PowerState/running"),
Expected: true,
},
{
Name: "Deallocated",
Input: buildInstanceViewStatus("ProvisioningStatus/succeeded", "PowerState/deallocated"),
Expected: false,
},
{
Name: "Deallocating",
Input: buildInstanceViewStatus("ProvisioningStatus/updating", "PowerState/deallocating"),
Expected: false,
},
{
Name: "Stopped",
Input: buildInstanceViewStatus("ProvisioningStatus/updating", "PowerState/stopped"),
Expected: false,
},
{
Name: "Stopping",
Input: buildInstanceViewStatus("ProvisioningStatus/updating", "PowerState/stopping"),
Expected: false,
},
{
Name: "Failed",
Input: buildInstanceViewStatus("ProvisioningStatus/failed", "PowerState/failed"),
Expected: false,
},
}
for _, testCase := range testCases {
t.Logf("Running %q..", testCase.Name)
instanceView := compute.VirtualMachineInstanceView{
Statuses: testCase.Input,
}
result := virtualMachineShouldBeStarted(instanceView)
if result != testCase.Expected {
t.Fatalf("Expected %t but got %t", testCase.Expected, result)
}
}
}