BracketHelperTests.cs
1 // Copyright (c) Microsoft Corporation 2 // The Microsoft Corporation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using Microsoft.CmdPal.Ext.Calc.Helper; 6 using Microsoft.VisualStudio.TestTools.UnitTesting; 7 8 namespace Microsoft.CmdPal.Ext.Calc.UnitTests; 9 10 [TestClass] 11 public class BracketHelperTests 12 { 13 [DataTestMethod] 14 [DataRow(null)] 15 [DataRow("")] 16 [DataRow("\t \r\n")] 17 [DataRow("none")] 18 [DataRow("()")] 19 [DataRow("(())")] 20 [DataRow("()()")] 21 [DataRow("(()())")] 22 [DataRow("([][])")] 23 [DataRow("([(()[])[](([]()))])")] 24 public void IsBracketComplete_TestValid_WhenCalled(string input) 25 { 26 // Arrange 27 28 // Act 29 var result = BracketHelper.IsBracketComplete(input); 30 31 // Assert 32 Assert.IsTrue(result); 33 } 34 35 [DataTestMethod] 36 [DataRow("((((", "only opening brackets")] 37 [DataRow("]]]", "only closing brackets")] 38 [DataRow("([)(])", "inner bracket mismatch")] 39 [DataRow(")(", "opening and closing reversed")] 40 [DataRow("(]", "mismatch in bracket type")] 41 public void IsBracketComplete_TestInvalid_WhenCalled(string input, string invalidReason) 42 { 43 // Arrange 44 45 // Act 46 var result = BracketHelper.IsBracketComplete(input); 47 48 // Assert 49 Assert.IsFalse(result, invalidReason); 50 } 51 }