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  }