/* 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-plugin-sdk/v2/helper/schema" ) // TestResourceVirtualEnvironmentContainerInstantiation tests whether the ResourceVirtualEnvironmentContainer instance can be instantiated. func TestResourceVirtualEnvironmentContainerInstantiation(t *testing.T) { s := resourceVirtualEnvironmentContainer() if s == nil { t.Fatalf("Cannot instantiate resourceVirtualEnvironmentContainer") } } // TestResourceVirtualEnvironmentContainerSchema tests the resourceVirtualEnvironmentContainer schema. func TestResourceVirtualEnvironmentContainerSchema(t *testing.T) { s := resourceVirtualEnvironmentContainer() testRequiredArguments(t, s, []string{ mkResourceVirtualEnvironmentContainerNodeName, }) testOptionalArguments(t, s, []string{ mkResourceVirtualEnvironmentContainerCPU, mkResourceVirtualEnvironmentContainerDescription, mkResourceVirtualEnvironmentContainerDisk, mkResourceVirtualEnvironmentContainerInitialization, mkResourceVirtualEnvironmentContainerMemory, mkResourceVirtualEnvironmentContainerOperatingSystem, mkResourceVirtualEnvironmentContainerPoolID, mkResourceVirtualEnvironmentContainerStarted, mkResourceVirtualEnvironmentContainerTags, mkResourceVirtualEnvironmentContainerTemplate, mkResourceVirtualEnvironmentContainerUnprivileged, mkResourceVirtualEnvironmentContainerFeatures, mkResourceVirtualEnvironmentContainerVMID, }) testValueTypes(t, s, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerCPU: schema.TypeList, mkResourceVirtualEnvironmentContainerDescription: schema.TypeString, mkResourceVirtualEnvironmentContainerDisk: schema.TypeList, mkResourceVirtualEnvironmentContainerInitialization: schema.TypeList, mkResourceVirtualEnvironmentContainerMemory: schema.TypeList, mkResourceVirtualEnvironmentContainerOperatingSystem: schema.TypeList, mkResourceVirtualEnvironmentContainerPoolID: schema.TypeString, mkResourceVirtualEnvironmentContainerStarted: schema.TypeBool, mkResourceVirtualEnvironmentContainerTags: schema.TypeList, mkResourceVirtualEnvironmentContainerTemplate: schema.TypeBool, mkResourceVirtualEnvironmentContainerUnprivileged: schema.TypeBool, mkResourceVirtualEnvironmentContainerFeatures: schema.TypeList, mkResourceVirtualEnvironmentContainerVMID: schema.TypeInt, }) cloneSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentContainerClone) testRequiredArguments(t, cloneSchema, []string{ mkResourceVirtualEnvironmentContainerCloneVMID, }) testOptionalArguments(t, cloneSchema, []string{ mkResourceVirtualEnvironmentContainerCloneDatastoreID, mkResourceVirtualEnvironmentContainerCloneNodeName, }) testValueTypes(t, cloneSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerCloneDatastoreID: schema.TypeString, mkResourceVirtualEnvironmentContainerCloneNodeName: schema.TypeString, mkResourceVirtualEnvironmentContainerCloneVMID: schema.TypeInt, }) cpuSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentContainerCPU) testOptionalArguments(t, cpuSchema, []string{ mkResourceVirtualEnvironmentContainerCPUArchitecture, mkResourceVirtualEnvironmentContainerCPUCores, mkResourceVirtualEnvironmentContainerCPUUnits, }) testValueTypes(t, cpuSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerCPUArchitecture: schema.TypeString, mkResourceVirtualEnvironmentContainerCPUCores: schema.TypeInt, mkResourceVirtualEnvironmentContainerCPUUnits: schema.TypeInt, }) diskSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentContainerDisk) testOptionalArguments(t, diskSchema, []string{ mkResourceVirtualEnvironmentContainerDiskDatastoreID, }) testValueTypes(t, diskSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerDiskDatastoreID: schema.TypeString, }) featuresSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentContainerFeatures) testOptionalArguments(t, featuresSchema, []string{ mkResourceVirtualEnvironmentContainerFeaturesNesting, }) testValueTypes(t, featuresSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerFeaturesNesting: schema.TypeBool, }) initializationSchema := testNestedSchemaExistence( t, s, mkResourceVirtualEnvironmentContainerInitialization, ) testOptionalArguments(t, initializationSchema, []string{ mkResourceVirtualEnvironmentContainerInitializationDNS, mkResourceVirtualEnvironmentContainerInitializationHostname, mkResourceVirtualEnvironmentContainerInitializationIPConfig, mkResourceVirtualEnvironmentContainerInitializationUserAccount, }) testValueTypes(t, initializationSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerInitializationDNS: schema.TypeList, mkResourceVirtualEnvironmentContainerInitializationHostname: schema.TypeString, mkResourceVirtualEnvironmentContainerInitializationIPConfig: schema.TypeList, mkResourceVirtualEnvironmentContainerInitializationUserAccount: schema.TypeList, }) initializationDNSSchema := testNestedSchemaExistence( t, initializationSchema, mkResourceVirtualEnvironmentContainerInitializationDNS, ) testOptionalArguments(t, initializationDNSSchema, []string{ mkResourceVirtualEnvironmentContainerInitializationDNSDomain, mkResourceVirtualEnvironmentContainerInitializationDNSServer, }) testValueTypes(t, initializationDNSSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerInitializationDNSDomain: schema.TypeString, mkResourceVirtualEnvironmentContainerInitializationDNSServer: schema.TypeString, }) initializationIPConfigSchema := testNestedSchemaExistence( t, initializationSchema, mkResourceVirtualEnvironmentContainerInitializationIPConfig, ) testOptionalArguments(t, initializationIPConfigSchema, []string{ mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv4, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv6, }) testValueTypes(t, initializationIPConfigSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv4: schema.TypeList, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv6: schema.TypeList, }) initializationIPConfigIPv4Schema := testNestedSchemaExistence( t, initializationIPConfigSchema, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv4, ) testOptionalArguments(t, initializationIPConfigIPv4Schema, []string{ mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv4Address, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv4Gateway, }) testValueTypes(t, initializationIPConfigIPv4Schema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv4Address: schema.TypeString, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv4Gateway: schema.TypeString, }) initializationIPConfigIPv6Schema := testNestedSchemaExistence( t, initializationIPConfigSchema, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv6, ) testOptionalArguments(t, initializationIPConfigIPv6Schema, []string{ mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv6Address, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv6Gateway, }) testValueTypes(t, initializationIPConfigIPv6Schema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv6Address: schema.TypeString, mkResourceVirtualEnvironmentContainerInitializationIPConfigIPv6Gateway: schema.TypeString, }) initializationUserAccountSchema := testNestedSchemaExistence( t, initializationSchema, mkResourceVirtualEnvironmentContainerInitializationUserAccount, ) testOptionalArguments(t, initializationUserAccountSchema, []string{ mkResourceVirtualEnvironmentContainerInitializationUserAccountKeys, mkResourceVirtualEnvironmentContainerInitializationUserAccountPassword, }) testValueTypes(t, initializationUserAccountSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerInitializationUserAccountKeys: schema.TypeList, mkResourceVirtualEnvironmentContainerInitializationUserAccountPassword: schema.TypeString, }) memorySchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentContainerMemory) testOptionalArguments(t, memorySchema, []string{ mkResourceVirtualEnvironmentContainerMemoryDedicated, mkResourceVirtualEnvironmentContainerMemorySwap, }) testValueTypes(t, memorySchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerMemoryDedicated: schema.TypeInt, mkResourceVirtualEnvironmentContainerMemorySwap: schema.TypeInt, }) networkInterfaceSchema := testNestedSchemaExistence( t, s, mkResourceVirtualEnvironmentContainerNetworkInterface, ) testRequiredArguments(t, networkInterfaceSchema, []string{ mkResourceVirtualEnvironmentContainerNetworkInterfaceName, }) testOptionalArguments(t, networkInterfaceSchema, []string{ mkResourceVirtualEnvironmentContainerNetworkInterfaceBridge, mkResourceVirtualEnvironmentContainerNetworkInterfaceEnabled, mkResourceVirtualEnvironmentContainerNetworkInterfaceMACAddress, mkResourceVirtualEnvironmentContainerNetworkInterfaceRateLimit, mkResourceVirtualEnvironmentContainerNetworkInterfaceVLANID, mkResourceVirtualEnvironmentContainerNetworkInterfaceMTU, }) testValueTypes(t, networkInterfaceSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerNetworkInterfaceBridge: schema.TypeString, mkResourceVirtualEnvironmentContainerNetworkInterfaceEnabled: schema.TypeBool, mkResourceVirtualEnvironmentContainerNetworkInterfaceMACAddress: schema.TypeString, mkResourceVirtualEnvironmentContainerNetworkInterfaceName: schema.TypeString, mkResourceVirtualEnvironmentContainerNetworkInterfaceRateLimit: schema.TypeFloat, mkResourceVirtualEnvironmentContainerNetworkInterfaceVLANID: schema.TypeInt, mkResourceVirtualEnvironmentContainerNetworkInterfaceMTU: schema.TypeInt, }) operatingSystemSchema := testNestedSchemaExistence( t, s, mkResourceVirtualEnvironmentContainerOperatingSystem, ) testRequiredArguments(t, operatingSystemSchema, []string{ mkResourceVirtualEnvironmentContainerOperatingSystemTemplateFileID, }) testOptionalArguments(t, operatingSystemSchema, []string{ mkResourceVirtualEnvironmentContainerOperatingSystemType, }) testValueTypes(t, operatingSystemSchema, map[string]schema.ValueType{ mkResourceVirtualEnvironmentContainerOperatingSystemTemplateFileID: schema.TypeString, mkResourceVirtualEnvironmentContainerOperatingSystemType: schema.TypeString, }) }