Team Ai
Datasetpublic

MegaBites-AI/Windows-powershell

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes372downloads
test_PSObject.cs128 linesDownload Raw Back to csharp
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System;5using System.Management.Automation.Language;6using Xunit;7 8namespace PSTests.Parallel9{10    using System.Linq;11    using System.Management.Automation;12    using System.Management.Automation.Runspaces;13    using System.Xml;14 15    using Microsoft.Management.Infrastructure;16 17    public static class PSObjectTests18    {19        [Fact]20        public static void TestEmptyObjectHasNoProperty()21        {22            var pso = new PSObject();23            var actual = pso.GetFirstPropertyOrDefault(name => true);24            Assert.Null(actual);25        }26 27        [Fact]28        public static void TestWrappedDateTimeHasReflectedMember()29        {30            var pso = new PSObject(DateTime.Now);31            var member = pso.GetFirstPropertyOrDefault(name => name == "DayOfWeek");32            Assert.NotNull(member);33            Assert.Equal("DayOfWeek", member.Name);34        }35 36        [Fact]37        public static void TestAdaptedMember()38        {39            var pso = new PSObject(DateTime.Now);40            pso.Members.Add(new PSNoteProperty("NewMember", "AValue"));41            var member = pso.GetFirstPropertyOrDefault(name => name == "NewMember");42            Assert.NotNull(member);43            Assert.Equal("NewMember", member.Name);44        }45 46        [Fact]47        public static void TestShadowedMember()48        {49            var pso = new PSObject(DateTime.Now);50            pso.Members.Add(new PSNoteProperty("DayOfWeek", "AValue"));51            var member = pso.GetFirstPropertyOrDefault(name => name == "DayOfWeek");52            Assert.NotNull(member);53            Assert.Equal("DayOfWeek", member.Name);54            Assert.Equal("AValue", member.Value);55        }56 57        [Fact]58        public static void TestMemberSetIsNotProperty()59        {60            var pso = new PSObject(DateTime.Now);61            var psNoteProperty = new PSNoteProperty("NewMember", "AValue");62            pso.Members.Add(psNoteProperty);63            pso.Members.Add(new PSMemberSet("NewMemberSet", new[] { psNoteProperty }));64 65            var member = pso.GetFirstPropertyOrDefault(name => name == "NewMemberSet");66            Assert.Null(member);67        }68 69        [Fact]70        public static void TestMemberSet()71        {72            var pso = new PSObject(DateTime.Now);73            var psNoteProperty = new PSNoteProperty("NewMember", "AValue");74            pso.Members.Add(psNoteProperty);75            pso.Members.Add(new PSMemberSet("NewMemberSet", new[] { psNoteProperty }));76 77            var member = pso.Members.FirstOrDefault(name => name == "NewMemberSet");78            Assert.NotNull(member);79            Assert.Equal("NewMemberSet", member.Name);80        }81 82        [Fact]83        public static void TextXmlElementMember()84        {85            var doc = new XmlDocument();86            var root = doc.CreateElement("root");87            doc.AppendChild(root);88            var firstChild = doc.CreateElement("elem1");89            root.AppendChild(firstChild);90            root.InsertAfter(doc.CreateElement("elem2"), firstChild);91 92            var pso = new PSObject(root);93            var member = pso.GetFirstPropertyOrDefault(name => name.StartsWith("elem"));94            Assert.Equal("elem1", member.Name);95        }96 97        [Fact]98        public static void TextXmlAttributeMember()99        {100            var doc = new XmlDocument();101            var root = doc.CreateElement("root");102            doc.AppendChild(root);103            root.SetAttribute("attr", "value");104            root.AppendChild(doc.CreateElement("elem"));105 106            var pso = new PSObject(root);107            var member = pso.GetFirstPropertyOrDefault(name => name.StartsWith("attr"));108            Assert.Equal("attr", member.Name);109        }110 111        [SkippableFact]112        public static void TestCimInstanceProperty()113        {114            Skip.IfNot(Platform.IsWindows);115            var iss = InitialSessionState.CreateDefault2();116            iss.Commands.Add(new SessionStateCmdletEntry("Get-CimInstance", typeof(Microsoft.Management.Infrastructure.CimCmdlets.GetCimInstanceCommand), null));117            using (var ps = PowerShell.Create(iss))118            {119                ps.AddCommand("Get-CimInstance").AddParameter("ClassName", "Win32_BIOS");120                var res = ps.Invoke().FirstOrDefault();121                Assert.NotNull(res);122                var member = res.GetFirstPropertyOrDefault(name => name == "Name");123                Assert.NotNull(member);124            }125        }126    }127}128