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);
        }
Example #4
0
        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);
        }
Example #6
0
 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));
 }