public void AddEthernetConnectionToSyntheticEthernetPort_ExpectingOne() { using (var viridianUtils = new ViridianUtils()) { viridianUtils.SUT_VirtualEthernetSwitchSettingDataMO( ViridianUtils.GetCurrentMethod(), "notes", out uint ReturnValue, out ManagementPath Job, out ManagementPath ResultingSystem); using (var virtualEthernetSwitch = new VirtualEthernetSwitch(ResultingSystem)) { viridianUtils.SUT_ComputerSystemMO( ViridianUtils.GetCurrentMethod(), out ReturnValue, out Job, out ResultingSystem); using (var primordialResourcePool = ViridianUtils.GetPrimordialResourcePool("Microsoft:Hyper-V:Synthetic Ethernet Port")) using (var allocationCapabilities = ViridianUtils.GetAllocationCapabilities(primordialResourcePool)) using (var syntheticEthernetPortSettingData = ViridianUtils.GetDefaultSyntheticEthernetPortSettingData(allocationCapabilities)) using (var computerSystem = new ComputerSystem(ResultingSystem)) using (var virtualSystemSettingData = ViridianUtils.GetVirtualSystemSettingDataListThroughSettingsDefineState(computerSystem).First()) { syntheticEthernetPortSettingData.LateBoundObject["VirtualSystemIdentifiers"] = new string[] { Guid.NewGuid().ToString("B") }; syntheticEthernetPortSettingData.LateBoundObject["ElementName"] = ViridianUtils.GetCurrentMethod(); syntheticEthernetPortSettingData.LateBoundObject["StaticMacAddress"] = false; var AffectedConfiguration = virtualSystemSettingData.Path; var ResourceSettings = new string[] { syntheticEthernetPortSettingData.LateBoundObject.GetText(TextFormat.WmiDtd20) }; ReturnValue = viridianUtils.VSMS.AddResourceSettings(AffectedConfiguration, ResourceSettings, out Job, out ManagementPath[] ResultingResourceSettings); using (var syntheticEthernetPortSettingDataResulted = new SyntheticEthernetPortSettingData(ResultingResourceSettings[0])) using (var ethernetConnectionPrimordialPool = ViridianUtils.GetPrimordialResourcePool("Microsoft:Hyper-V:Ethernet Connection")) using (var allocationCapabilitiesEthernetConnection = ViridianUtils.GetAllocationCapabilities(ethernetConnectionPrimordialPool)) using (var ethernetPortAllocationSettingData = ViridianUtils.GetDefaultEthernetPortAllocationSettingData(allocationCapabilitiesEthernetConnection)) { ethernetPortAllocationSettingData.LateBoundObject["Parent"] = syntheticEthernetPortSettingDataResulted.Path.Path; ethernetPortAllocationSettingData.LateBoundObject["HostResource"] = new string[] { virtualEthernetSwitch.Path.Path }; AffectedConfiguration = virtualSystemSettingData.Path; ResourceSettings = new string[] { ethernetPortAllocationSettingData.LateBoundObject.GetText(TextFormat.WmiDtd20) }; ReturnValue = viridianUtils.VSMS.AddResourceSettings(AffectedConfiguration, ResourceSettings, out Job, out ResultingResourceSettings); var sepsdCollection = ViridianUtils.GetSyntheticEthernetPortSettingData(virtualSystemSettingData, 10, "Microsoft:Hyper-V:Synthetic Ethernet Port"); var epsdCollection = ViridianUtils.GetEthernetPortAllocationSettingData(virtualSystemSettingData, 33, "Microsoft:Hyper-V:Ethernet Connection"); Assert.AreEqual(0U, ReturnValue); Assert.AreEqual(1, sepsdCollection.Count); Assert.AreEqual(1, epsdCollection.Count); Assert.AreEqual(1, ResultingResourceSettings.Length); Assert.IsNotNull(virtualEthernetSwitch); } } } } }
static public void GetDefaultSyntheticEthernetPortSettingData(Dictionary <string, object> args, out SyntheticEthernetPortSettingData SyntheticEthernetPortSettingData) { var primordialResourcePool = GetPrimordialResourcePool("Microsoft:Hyper-V:Synthetic Ethernet Port"); var allocationCapabilities = GetAllocationCapabilities(primordialResourcePool); var data = GetDefaultSyntheticEthernetPortSettingData(allocationCapabilities); args.ToList().ForEach(pair => { var propertyName = pair.Key; var propertyValue = pair.Value; switch (propertyName) { case nameof(data.ElementName): data.LateBoundObject[nameof(data.ElementName)] = Convert.ToString(propertyValue); break; case nameof(data.VirtualSystemIdentifiers): data.LateBoundObject[nameof(data.VirtualSystemIdentifiers)] = ToStringArray(propertyValue); break; case nameof(data.StaticMacAddress): data.LateBoundObject[nameof(data.StaticMacAddress)] = Convert.ToBoolean(propertyValue); break; default: throw new Exception("Property value not handled or invalid!"); } }); SyntheticEthernetPortSettingData = data; }