Ejemplo n.º 1
0
        public void CategoryNode_rejects_moving_itself_to_category_if_category_name_already_exists(string initialName, string destinationName, string resultName)
        {
            // ARRANGE

            this.ProviderContextMock
            .Setup(p => p.Persistence)
            .Returns(this.PersistenceMock.Object);

            this.PersistenceMock
            .Setup(p => p.Categories)
            .Returns(this.CategoryRepositoryMock.Object);

            var c  = DefaultCategory();
            var c2 = DefaultCategory(c => c.Name = initialName);

            this.CategoryRepositoryMock
            .Setup(r => r.FindById(c.Id))
            .Returns(c);

            this.CategoryRepositoryMock
            .Setup(r => r.FindByParentAndName(c, resultName))
            .Returns(DefaultCategory());

            var categoryNode = new CategoryNode(c);
            var node         = new CategoryNode(c2);

            // ACT

            var result = Assert.Throws <InvalidOperationException>(
                () => node.MoveItem(this.ProviderContextMock.Object, "", destinationName, categoryNode));

            // ASSERT

            Assert.Equal($"Destination container contains already a category with name '{resultName}'", result.Message);
        }
Ejemplo n.º 2
0
        public void CategoryNode_moves_itself_to_category(string initialName, string destinationName, string resultName)
        {
            // ARRANGE

            this.ProviderContextMock
            .Setup(p => p.Persistence)
            .Returns(this.PersistenceMock.Object);

            this.PersistenceMock
            .Setup(p => p.Categories)
            .Returns(this.CategoryRepositoryMock.Object);

            var destination = DefaultCategory();
            var c2          = DefaultCategory(c => c.Name = initialName);

            this.CategoryRepositoryMock
            .Setup(r => r.FindById(destination.Id))
            .Returns(destination);

            this.CategoryRepositoryMock
            .Setup(r => r.FindByParentAndName(destination, resultName))
            .Returns((Category?)null);

            this.PersistenceMock
            .Setup(p => p.Entities)
            .Returns(this.EntityRepositoryMock.Object);

            this.EntityRepositoryMock
            .Setup(r => r.FindByCategoryAndName(destination, resultName))
            .Returns((Entity?)null);

            this.CategoryRepositoryMock
            .Setup(r => r.Upsert(c2))
            .Returns <Category>(c => c);

            var destinationNode = new CategoryNode(destination);
            var node            = new CategoryNode(c2);

            // ACT

            node.MoveItem(this.ProviderContextMock.Object, "", destinationName, destinationNode);

            // ASSERT

            Assert.Equal(destination, c2.Parent);
            Assert.Equal(resultName, c2.Name);
        }