| 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); | |
| } | |
| } | |
| } |