コード例 #1
0
        public void ReparentingCostCentreMustUpdateChildren()
        {
            //Arrange
            var ctx = CreateContext();
            centres[1].ParentCostCentre = centres[0];
            mockCentres
                .Setup(set => set.Find(It.Is<object[]>(objects => (string)objects[0] == CostCentre1)))
                .Returns(() => centres[1]);
            mockCentres
                .Setup(set => set.Find(It.Is<object[]>(objects => (string) objects[0] == CostCentre5)))
                .Returns(() => centres[5]);

            ctx
                .SetupGet(c => c.CostCentres)
                .Returns(mockCentres.Object);
            ctx
                .SetupGet(c => c.CarbonEmissionEntries)
                .Returns(mockEntries.Object);
            var sut = new CostCentreController(ctx.Object);

            //Act
            sut.ReParent(CostCentre1, CostCentre5);

            //Assert
            Assert.AreEqual(new HierarchyId("/2/2/"), centres[1].Node);
            Assert.AreEqual(new HierarchyId("/2/2/1/"), centres[2].Node);
            Assert.AreEqual(new HierarchyId("/2/2/2/"), centres[3].Node);
            Assert.AreEqual(new HierarchyId("/2/2/2/1/"), centres[4].Node);
        }
コード例 #2
0
        public void ReOrderingAscendinglyMustUpdateChildNodesAsWell()
        {
            //Arrange
            var ctx = CreateContext();
            mockCentres
                .Setup(set => set.Find(It.Is<object[]>(objects => (string)objects[0] == CostCentre0)))
                .Returns(() => centres[0]);
            mockCentres
                .Setup(set => set.Find(It.Is<object[]>(objects => (string)objects[0] == CostCentre7)))
                .Returns(() => centres[7]);

            ctx
                .SetupGet(c => c.CostCentres)
                .Returns(mockCentres.Object);
            ctx
                .SetupGet(c => c.CarbonEmissionEntries)
                .Returns(mockEntries.Object);
            var sut = new CostCentreController(ctx.Object);

            //Act
            sut.ReOrder(CostCentre7, 1);

            //Assert
            Assert.AreEqual(new HierarchyId("/2/"), centres[1].Node);
            Assert.AreEqual(new HierarchyId("/2/1/"), centres[2].Node);
            Assert.AreEqual(new HierarchyId("/2/2/"), centres[3].Node);
            Assert.AreEqual(new HierarchyId("/2/2/1/"), centres[4].Node);
            Assert.AreEqual(new HierarchyId("/3/"), centres[5].Node);
            Assert.AreEqual(new HierarchyId("/3/1/"), centres[6].Node);
            Assert.AreEqual(new HierarchyId("/1/"), centres[7].Node);
        }
コード例 #3
0
        public void NewCostCentreMustUseParentHeirarchyInNode()
        {
            //Arrange
            var ctx = CreateContext();
            mockCentres
                .Setup(set => set.Find(It.Is<object[]>(objects => (string) objects[0] == CostCentre1)))
                .Returns(() => centres[1]);
            mockCentres
                .Setup(set => set.Create())
                .Returns(new CostCentre())
                .Verifiable();
            mockCentres
                .Setup(set => set.Add(It.Is<CostCentre>(c => c.Node == new HierarchyId("/1/3/"))))
                .Verifiable();
            ctx
                .SetupGet(c => c.CostCentres)
                .Returns(mockCentres.Object);
            var sut = new CostCentreController(ctx.Object);
            var newCentre = new CostCentreModel
            {
                costCode = "new",
                parentCostCode = CostCentre1,
                name = "name",
                color = "FFFFFF",
                currencyCode = new Select2Model()
            };

            //Act
            sut.UpsertCostCentre(newCentre);

            //Assert
            mockCentres.Verify();
        }