public void ShouldHandleCircularReference2() { var expectedAddres = "A1:A2"; var provider = MockRepository.GenerateStub<ExcelDataProvider>(); provider .Stub(x => x.GetRangeValues(expectedAddres)) .Return(new ExcelCell[] { CreateItem(1, 0), new ExcelCell(null, "SUM(A1:A2)",0, 1) }); var parser = new FormulaParser(provider); var result = parser.Parse(string.Format("sum({0})", expectedAddres)); }
public void ShouldExecuteFormulaInRange() { var expectedAddres = "A1:A2"; var provider = MockRepository.GenerateStub<ExcelDataProvider>(); provider .Stub(x => x.GetRangeValues(expectedAddres)) .Return(new ExcelCell[] { CreateItem(1, 0), new ExcelCell(null, "SUM(1,2)", 0, 1) }); var parser = new FormulaParser(provider); var result = parser.Parse(string.Format("sum({0})", expectedAddres)); Assert.AreEqual(4d, result); }
public void ShouldCallProviderInSumFunctionAndCalculateResult() { var expectedAddres = "A1:A2"; var provider = MockRepository.GenerateStub<ExcelDataProvider>(); provider .Stub(x => x.GetRangeValues(expectedAddres)) .Return(new ExcelCell[] { CreateItem(1, 0), CreateItem(2, 1) }); var parser = new FormulaParser(provider); var result = parser.Parse(string.Format("sum({0})", expectedAddres)); Assert.AreEqual(3d, result); }