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); }
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); }