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);
                                                    }
                                    }
                }
            }
        }
Пример #2
0
        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;
        }