MegaBites-AI/Windows-powershell
0372
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System;5using System.Management.Automation;6using Xunit;7 8namespace PSTests.Parallel9{10 public class WildcardPatternTests11 {12 [Fact]13 public void TestEscape_Null()14 {15 Assert.Throws<System.Management.Automation.PSArgumentNullException>(delegate { WildcardPattern.Escape(null); });16 }17 18 [Fact]19 public void TestEscape_Empty()20 {21 Assert.Equal(WildcardPattern.Escape(string.Empty), string.Empty);22 }23 24 [Theory]25 [InlineData("a", "a")]26 [InlineData("a*", "a`*")]27 [InlineData("*?[]", "`*`?`[`]")]28 [InlineData("`", "``")]29 [InlineData("```", "``````")]30 [InlineData("a`", "a``")]31 [InlineData("abc`def", "abc``def")]32 [InlineData("abc``def", "abc````def")]33 [InlineData("text with `backticks", "text with ``backticks")]34 [InlineData("ends with `", "ends with ``")]35 [InlineData("`starts with", "``starts with")]36 [InlineData("`in`between`", "``in``between``")]37 [InlineData("no special characters", "no special characters")]38 [InlineData("`*`", "```*``")]39 [InlineData("*`?[]", "`*```?`[`]")]40 [InlineData("`*`?`[", "```*```?```[")]41 [InlineData("*?[]`", "`*`?`[`]``")]42 [InlineData("nested `backticks `inside`", "nested ``backticks ``inside``")]43 [InlineData("wildcard*with`backtick", "wildcard`*with``backtick")]44 public void TestEscape_String(string source, string expected)45 {46 Assert.Equal(WildcardPattern.Escape(source), expected);47 }48 49 [Theory]50 [InlineData("a", "a")]51 [InlineData("a*", "a*")]52 [InlineData("*?[]", "*?[]")]53 public void TestEscape_String_NotEscape(string source, string expected)54 {55 Assert.Equal(WildcardPattern.Escape(source, new[] { '*', '?', '[', ']' }), expected);56 }57 58 [Fact]59 public void TestUnescape_Null()60 {61 Assert.Throws<System.Management.Automation.PSArgumentNullException>(delegate { WildcardPattern.Unescape(null); });62 }63 64 [Fact]65 public void TestUnescape_Empty()66 {67 Assert.Equal(WildcardPattern.Unescape(string.Empty), string.Empty);68 }69 70 [Theory]71 [InlineData("a", "a")]72 [InlineData("a`*", "a*")]73 [InlineData("`*`?`[`]", "*?[]")]74 public void TestUnescape_String(string source, string expected)75 {76 Assert.Equal(WildcardPattern.Unescape(source), expected);77 }78 }79}80 