@@ -18,52 +18,111 @@ func TestDiskAttachmentResource(t *testing.T) {
1818 clusterID := p .getTestHelper ().GetClusterID ()
1919 templateID := p .getTestHelper ().GetBlankTemplateID ()
2020
21- resource .UnitTest (
22- t , resource.TestCase {
23- ProviderFactories : p .getProviderFactories (),
24- Steps : []resource.TestStep {
25- {
26- Config : fmt .Sprintf (
27- `
28- provider "ovirt" {
29- mock = true
30- }
31-
32- resource "ovirt_disk" "test" {
33- storage_domain_id = "%s"
34- format = "raw"
35- size = 1048576
36- alias = "test"
37- sparse = true
38- }
39-
40- resource "ovirt_vm" "test" {
41- cluster_id = "%s"
42- template_id = "%s"
43- name = "test"
44- }
21+ baseConfig := fmt .Sprintf (`
22+ provider "ovirt" {
23+ mock = true
24+ }
25+
26+ resource "ovirt_disk" "test" {
27+ storage_domain_id = "%s"
28+ format = "raw"
29+ size = 1048576
30+ alias = "test"
31+ sparse = true
32+ }
33+
34+ resource "ovirt_vm" "test" {
35+ cluster_id = "%s"
36+ template_id = "%s"
37+ name = "test"
38+ }` ,
39+ storageDomainID ,
40+ clusterID ,
41+ templateID ,
42+ )
4543
46- resource "ovirt_disk_attachment" "test" {
47- vm_id = ovirt_vm.test.id
48- disk_id = ovirt_disk.test.id
49- disk_interface = "virtio_scsi"
50- }
51- ` ,
52- storageDomainID ,
53- clusterID ,
54- templateID ,
55- ),
56- Check : resource .ComposeTestCheckFunc (
57- resource .TestMatchResourceAttr (
58- "ovirt_disk_attachment.test" ,
59- "id" ,
60- regexp .MustCompile ("^.+$" ),
61- ),
62- ),
63- },
64- },
44+ testcases := []struct {
45+ name string
46+ inputBootable string
47+ inputActive string
48+ expectedBootable bool
49+ expectedActive bool
50+ }{
51+ {
52+ name : "all set to true" ,
53+ inputBootable : "true" ,
54+ inputActive : "true" ,
55+ expectedBootable : true ,
56+ expectedActive : true ,
6557 },
66- )
58+ {
59+ name : "all set to false" ,
60+ inputBootable : "false" ,
61+ inputActive : "false" ,
62+ expectedBootable : false ,
63+ expectedActive : false ,
64+ },
65+ {
66+ name : "using defaults" ,
67+ inputBootable : "null" ,
68+ inputActive : "null" ,
69+ expectedBootable : false ,
70+ expectedActive : false ,
71+ },
72+ }
73+
74+ for _ , testcase := range testcases {
75+ t .Run (testcase .name , func (t * testing.T ) {
76+ resource .UnitTest (
77+ t , resource.TestCase {
78+ ProviderFactories : p .getProviderFactories (),
79+ Steps : []resource.TestStep {
80+ {
81+ Config : fmt .Sprintf (`
82+ %s
83+
84+ resource "ovirt_disk_attachment" "test" {
85+ vm_id = ovirt_vm.test.id
86+ disk_id = ovirt_disk.test.id
87+ disk_interface = "virtio_scsi"
88+ bootable = %s
89+ active = %s
90+ }` ,
91+ baseConfig ,
92+ testcase .inputBootable ,
93+ testcase .inputActive ,
94+ ),
95+ Check : resource .ComposeTestCheckFunc (
96+ resource .TestMatchResourceAttr (
97+ "ovirt_disk_attachment.test" ,
98+ "id" ,
99+ regexp .MustCompile ("^.+$" ),
100+ ),
101+ func (s * terraform.State ) error {
102+ VMID := s .RootModule ().Resources ["ovirt_vm.test" ].Primary .ID
103+ diskAttachmentID := s .RootModule ().Resources ["ovirt_disk_attachment.test" ].Primary .ID
104+ diskAttachment , err := p .getTestHelper ().GetClient ().GetDiskAttachment (ovirtclient .VMID (VMID ), ovirtclient .DiskAttachmentID (diskAttachmentID ))
105+ if err != nil {
106+ return err
107+ }
108+ if diskAttachment .DiskInterface () != "virtio_scsi" {
109+ return fmt .Errorf ("Expected disk_interface 'virtio_scsi', but got '%s'" , diskAttachment .DiskInterface ())
110+ }
111+ if diskAttachment .Bootable () != testcase .expectedActive {
112+ return fmt .Errorf ("Expected bootable to be %t, but got %t" , testcase .expectedBootable , diskAttachment .Bootable ())
113+ }
114+ if diskAttachment .Active () != testcase .expectedActive {
115+ return fmt .Errorf ("Expected active to be %t, but got %t" , testcase .expectedActive , diskAttachment .Active ())
116+ }
117+ return nil
118+ },
119+ ),
120+ },
121+ },
122+ },
123+ )
124+ })
125+ }
67126}
68127
69128func TestDiskAttachmentResourceImport (t * testing.T ) {
0 commit comments