0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-07-01 11:02:59 +00:00
terraform-provider-proxmox/proxmoxtf/resource_virtual_environment_vm_test.go
2019-12-26 03:05:03 +01:00

123 lines
3.7 KiB
Go

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
package proxmoxtf
import (
"testing"
"github.com/hashicorp/terraform/helper/schema"
)
// TestResourceVirtualEnvironmentVMInstantiation tests whether the ResourceVirtualEnvironmentVM instance can be instantiated.
func TestResourceVirtualEnvironmentVMInstantiation(t *testing.T) {
s := resourceVirtualEnvironmentVM()
if s == nil {
t.Fatalf("Cannot instantiate resourceVirtualEnvironmentVM")
}
}
// TestResourceVirtualEnvironmentVMSchema tests the resourceVirtualEnvironmentVM schema.
func TestResourceVirtualEnvironmentVMSchema(t *testing.T) {
s := resourceVirtualEnvironmentVM()
testOptionalArguments(t, s, []string{
mkResourceVirtualEnvironmentVMCPU,
mkResourceVirtualEnvironmentVMDisk,
mkResourceVirtualEnvironmentVMMemory,
mkResourceVirtualEnvironmentVMName,
mkResourceVirtualEnvironmentVMNetworkDevice,
mkResourceVirtualEnvironmentVMVMID,
})
testSchemaValueTypes(t, s, []string{
mkResourceVirtualEnvironmentVMCPU,
mkResourceVirtualEnvironmentVMDisk,
mkResourceVirtualEnvironmentVMMemory,
mkResourceVirtualEnvironmentVMName,
mkResourceVirtualEnvironmentVMNetworkDevice,
mkResourceVirtualEnvironmentVMVMID,
}, []schema.ValueType{
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeString,
schema.TypeList,
schema.TypeInt,
})
cpuSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentVMCPU)
testOptionalArguments(t, cpuSchema, []string{
mkResourceVirtualEnvironmentVMCPUCores,
mkResourceVirtualEnvironmentVMCPUSockets,
})
testSchemaValueTypes(t, cpuSchema, []string{
mkResourceVirtualEnvironmentVMCPUCores,
mkResourceVirtualEnvironmentVMCPUSockets,
}, []schema.ValueType{
schema.TypeInt,
schema.TypeInt,
})
diskSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentVMDisk)
testOptionalArguments(t, diskSchema, []string{
mkResourceVirtualEnvironmentVMDiskDatastoreID,
mkResourceVirtualEnvironmentVMDiskFileID,
mkResourceVirtualEnvironmentVMDiskSize,
})
testSchemaValueTypes(t, diskSchema, []string{
mkResourceVirtualEnvironmentVMDiskDatastoreID,
mkResourceVirtualEnvironmentVMDiskFileID,
mkResourceVirtualEnvironmentVMDiskSize,
}, []schema.ValueType{
schema.TypeString,
schema.TypeString,
schema.TypeInt,
})
memorySchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentVMMemory)
testOptionalArguments(t, memorySchema, []string{
mkResourceVirtualEnvironmentVMMemoryDedicated,
mkResourceVirtualEnvironmentVMMemoryFloating,
mkResourceVirtualEnvironmentVMMemoryShared,
})
testSchemaValueTypes(t, memorySchema, []string{
mkResourceVirtualEnvironmentVMMemoryDedicated,
mkResourceVirtualEnvironmentVMMemoryFloating,
mkResourceVirtualEnvironmentVMMemoryShared,
}, []schema.ValueType{
schema.TypeInt,
schema.TypeInt,
schema.TypeInt,
})
networkDeviceSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentVMNetworkDevice)
testOptionalArguments(t, networkDeviceSchema, []string{
mkResourceVirtualEnvironmentVMNetworkDeviceBridge,
mkResourceVirtualEnvironmentVMNetworkDeviceMACAddress,
mkResourceVirtualEnvironmentVMNetworkDeviceModel,
mkResourceVirtualEnvironmentVMNetworkDeviceVLANID,
})
testSchemaValueTypes(t, networkDeviceSchema, []string{
mkResourceVirtualEnvironmentVMNetworkDeviceBridge,
mkResourceVirtualEnvironmentVMNetworkDeviceMACAddress,
mkResourceVirtualEnvironmentVMNetworkDeviceModel,
mkResourceVirtualEnvironmentVMNetworkDeviceVLANID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeInt,
})
}