/* 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() testRequiredArguments(t, s, []string{ mkResourceVirtualEnvironmentVMNodeName, }) testOptionalArguments(t, s, []string{ mkResourceVirtualEnvironmentVMCDROM, mkResourceVirtualEnvironmentVMCPU, mkResourceVirtualEnvironmentVMDisk, mkResourceVirtualEnvironmentVMKeyboardLayout, mkResourceVirtualEnvironmentVMMemory, mkResourceVirtualEnvironmentVMName, mkResourceVirtualEnvironmentVMNetworkDevice, mkResourceVirtualEnvironmentVMOSType, mkResourceVirtualEnvironmentVMVMID, }) testSchemaValueTypes(t, s, []string{ mkResourceVirtualEnvironmentVMCDROM, mkResourceVirtualEnvironmentVMCPU, mkResourceVirtualEnvironmentVMDisk, mkResourceVirtualEnvironmentVMKeyboardLayout, mkResourceVirtualEnvironmentVMMemory, mkResourceVirtualEnvironmentVMName, mkResourceVirtualEnvironmentVMNetworkDevice, mkResourceVirtualEnvironmentVMOSType, mkResourceVirtualEnvironmentVMVMID, }, []schema.ValueType{ schema.TypeList, schema.TypeList, schema.TypeList, schema.TypeString, schema.TypeList, schema.TypeString, schema.TypeList, schema.TypeString, schema.TypeInt, }) cdromSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentVMCDROM) testOptionalArguments(t, cdromSchema, []string{ mkResourceVirtualEnvironmentVMCDROMEnabled, mkResourceVirtualEnvironmentVMCDROMFileID, }) testSchemaValueTypes(t, cdromSchema, []string{ mkResourceVirtualEnvironmentVMCDROMEnabled, mkResourceVirtualEnvironmentVMCDROMFileID, }, []schema.ValueType{ schema.TypeBool, schema.TypeString, }) 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, mkResourceVirtualEnvironmentVMDiskEnabled, mkResourceVirtualEnvironmentVMDiskFileFormat, mkResourceVirtualEnvironmentVMDiskFileID, mkResourceVirtualEnvironmentVMDiskSize, }) testSchemaValueTypes(t, diskSchema, []string{ mkResourceVirtualEnvironmentVMDiskDatastoreID, mkResourceVirtualEnvironmentVMDiskEnabled, mkResourceVirtualEnvironmentVMDiskFileFormat, mkResourceVirtualEnvironmentVMDiskFileID, mkResourceVirtualEnvironmentVMDiskSize, }, []schema.ValueType{ schema.TypeString, schema.TypeBool, 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, mkResourceVirtualEnvironmentVMNetworkDeviceEnabled, mkResourceVirtualEnvironmentVMNetworkDeviceMACAddress, mkResourceVirtualEnvironmentVMNetworkDeviceModel, mkResourceVirtualEnvironmentVMNetworkDeviceVLANID, }) testSchemaValueTypes(t, networkDeviceSchema, []string{ mkResourceVirtualEnvironmentVMNetworkDeviceBridge, mkResourceVirtualEnvironmentVMNetworkDeviceEnabled, mkResourceVirtualEnvironmentVMNetworkDeviceMACAddress, mkResourceVirtualEnvironmentVMNetworkDeviceModel, mkResourceVirtualEnvironmentVMNetworkDeviceVLANID, }, []schema.ValueType{ schema.TypeString, schema.TypeBool, schema.TypeString, schema.TypeString, schema.TypeInt, }) }