public void GivenCachedCostCentreInOneTier3AndUncachedCostCentreInSameTier3_ThenItShouldFetchTheTier3() { var lines = new BcrLine[] { A.BcrLine().With(A.Criteria.Tier3, "tier3").With(A.Criteria.CostCentre, "a").Actuals(100), A.BcrLine().With(A.Criteria.Tier3, "tier3").With(A.Criteria.CostCentre, "b") }; var engine = new Mock <IUnit4Engine>(); engine.Setup(x => x.RunReport(Resql.BcrTier3("tier3"))).Returns(lines.AsDataSet()); var cache = CreateCache( A.BcrLine().With(A.Criteria.Tier3, "tier3").With(A.Criteria.CostCentre, "a").Actuals(50)); var reader = CreateReader( new[] { new CostCentre() { Tier3 = "tier3", Code = "a" }, new CostCentre() { Tier3 = "tier3", Code = "b" } }, cache, engine.Object); var actualLines = reader.Read().Lines; engine.Verify(x => x.RunReport(Resql.BcrTier3("tier3")), Times.Once); Assert.That(actualLines, Is.EquivalentTo(lines)); }
public void GivenTier3WithOneCostCentresCached_ThenItShouldOnlyFetchTheUncachedTier3() { var lines = new BcrLine[] { A.BcrLine().With(A.Criteria.Tier3, "b").With(A.Criteria.CostCentre, "b") }; var engine = new Mock <IUnit4Engine>(); engine.Setup(x => x.RunReport(Resql.BcrTier3("b"))).Returns(lines.AsDataSet()); var cachedLines = new BcrLine[] { A.BcrLine().With(A.Criteria.Tier3, "a").With(A.Criteria.CostCentre, "a") }; var cache = CreateCache(cachedLines); var reader = CreateReader( new[] { new CostCentre() { Tier3 = "a", Code = "a" }, new CostCentre() { Tier3 = "b", Code = "b" } }, cache, engine.Object); var actualLines = reader.Read().Lines; engine.Verify(x => x.RunReport(Resql.BcrTier3("b")), Times.Once); engine.Verify(x => x.RunReport(Resql.BcrTier3("a")), Times.Never); Assert.That(actualLines, Is.EquivalentTo(lines.Union(cachedLines))); }
public void GivenNullValue_ThenTheObjectShouldBeGreater() { var line = new BcrLine(); var result = line.CompareTo(null) > 0; Assert.That(result, Is.True); }
public void GivenTwoLines_ThenTheyShouldBeSorted() { var bcr = new Bcr(new BcrLine[] { A.BcrLine().Account("B"), A.BcrLine().Account("A") }); var orderedLines = new BcrLine[] { A.BcrLine().Account("A"), A.BcrLine().Account("B") }; Assert.That(A.BcrFilter().Build().Use(bcr).Lines, Is.EqualTo(orderedLines)); }
public void GivenNoCache_ThenItShouldFetchAllTier3Hierarchies() { var lines = new BcrLine[] { A.BcrLine().With(A.Criteria.Tier3, "tier3") }; var engine = new Mock <IUnit4Engine>(); engine.Setup(x => x.RunReport(Resql.BcrTier3("tier3"))).Returns(lines.AsDataSet()); var reader = CreateReader( new[] { new CostCentre() { Tier3 = "tier3" } }, Mock.Of <IFile <Bcr> >(), engine.Object); reader.Read(); engine.Verify(x => x.RunReport(Resql.BcrTier3("tier3")), Times.Once); }
private void AddRow(MSExcel.Worksheet sheet, int rowNumber, BcrLine line) { sheet.Cells[rowNumber, 1] = line.CostCentre.Tier1; sheet.Cells[rowNumber, 2] = line.CostCentre.Tier1Name; sheet.Cells[rowNumber, 3] = line.CostCentre.Tier2; sheet.Cells[rowNumber, 4] = line.CostCentre.Tier2Name; sheet.Cells[rowNumber, 5] = line.CostCentre.Tier3; sheet.Cells[rowNumber, 6] = line.CostCentre.Tier3Name; sheet.Cells[rowNumber, 7] = line.CostCentre.Tier4; sheet.Cells[rowNumber, 8] = line.CostCentre.Tier4Name; sheet.Cells[rowNumber, 9] = line.CostCentre.Code; sheet.Cells[rowNumber, 10] = line.CostCentre.CostCentreName; sheet.Cells[rowNumber, 11] = line.Account; sheet.Cells[rowNumber, 12] = line.AccountName; sheet.Cells[rowNumber, 13] = line.Budget; sheet.Cells[rowNumber, 14] = line.Profile; sheet.Cells[rowNumber, 15] = line.Actuals; sheet.Cells[rowNumber, 16] = line.Variance; sheet.Cells[rowNumber, 17] = line.Forecast; sheet.Cells[rowNumber, 18] = line.OutturnVariance; }
public void GivenTheFinalBcr_ThenItShouldBeWrittenToTheCache() { var lines = new BcrLine[] { A.BcrLine().With(A.Criteria.Tier3, "tier3").With(A.Criteria.CostCentre, "a"), A.BcrLine().With(A.Criteria.Tier3, "tier3").With(A.Criteria.CostCentre, "b") }; var engine = new Mock <IUnit4Engine>(); engine.Setup(x => x.RunReport(Resql.BcrTier3("tier3"))).Returns(lines.AsDataSet()); var cache = new Mock <IFile <Bcr> >(); cache.Setup(x => x.Exists()).Returns(true); cache.Setup(x => x.IsDirty()).Returns(false); cache.Setup(x => x.Read()).Returns( new Bcr( new BcrLine[] { A.BcrLine().With(A.Criteria.Tier3, "tier3").With(A.Criteria.CostCentre, "a") })); var reader = CreateReader( new[] { new CostCentre() { Tier3 = "tier3", Code = "a" }, new CostCentre() { Tier3 = "tier3", Code = "b" } }, cache.Object, engine.Object); var bcr = reader.Read(); cache.Verify(x => x.Write(bcr), Times.Once); }
public void TestBcrLineCompareTo(BcrLine first, BcrLine second) { Assert.That(first, Is.LessThan(second)); }