| using System; |
| using System.Text; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml.FormulaParsing.ExcelUtilities; |
| |
| namespace EPPlusTest.ExcelUtilities |
| { |
| [TestClass] |
| public class ValueMatcherTests |
| { |
| private ValueMatcher _matcher; |
| |
| [TestInitialize] |
| public void Setup() |
| { |
| _matcher = new ValueMatcher(); |
| } |
| |
| [TestMethod] |
| public void ShouldReturn1WhenFirstParamIsSomethingAndSecondParamIsNull() |
| { |
| object o1 = 1; |
| object o2 = null; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(1, result); |
| } |
| |
| [TestMethod] |
| public void ShouldReturnMinus1WhenFirstParamIsNullAndSecondParamIsSomething() |
| { |
| object o1 = null; |
| object o2 = 1; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(-1, result); |
| } |
| |
| [TestMethod] |
| public void ShouldReturn0WhenBothParamsAreNull() |
| { |
| object o1 = null; |
| object o2 = null; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(0, result); |
| } |
| |
| [TestMethod] |
| public void ShouldReturn0WhenBothParamsAreEqual() |
| { |
| object o1 = 1d; |
| object o2 = 1d; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(0, result); |
| } |
| |
| [TestMethod] |
| public void ShouldReturnMinus1WhenFirstParamIsLessThanSecondParam() |
| { |
| object o1 = 1d; |
| object o2 = 5d; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(-1, result); |
| } |
| |
| [TestMethod] |
| public void ShouldReturn1WhenFirstParamIsGreaterThanSecondParam() |
| { |
| object o1 = 3d; |
| object o2 = 1d; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(1, result); |
| } |
| |
| [TestMethod] |
| public void ShouldReturn0WhenWhenParamsAreEqualStrings() |
| { |
| object o1 = "T"; |
| object o2 = "T"; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(0, result); |
| } |
| |
| [TestMethod] |
| public void ShouldReturn0WhenParamsAreEqualButDifferentTypes() |
| { |
| object o1 = "2"; |
| object o2 = 2d; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(0, result, "IsMatch did not return 0 as expected when first param is a string and second a double"); |
| |
| o1 = 2d; |
| o2 = "2"; |
| result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(0, result, "IsMatch did not return 0 as expected when first param is a double and second a string"); |
| } |
| |
| [TestMethod] |
| public void ShouldReturnMînus2WhenTypesDifferAndStringConversionToDoubleFails() |
| { |
| object o1 = 2d; |
| object o2 = "T"; |
| var result = _matcher.IsMatch(o1, o2); |
| Assert.AreEqual(-2, result); |
| } |
| } |
| } |