public void Should_CallRepositorySaveChangesAfterUpdateMethod_When_InputParametersAreValid() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); var updatedItemDto = new ItemDto() { Id = 1, Name = "Bread updated", NextReplenishmentDate = new DateTime(2020, 10, 10), ReplenishmentPeriod = 4 }; var sequence = new MockSequence(); ItemsRepositoryMock .InSequence(sequence) .Setup(c => c.Update(It.Is <Item>(x => x.HasTheSameProperties("ab70793b-cec8-4eba-99f3-cbad0b1649d0", updatedItemDto)))); ItemsRepositoryMock.InSequence(sequence).Setup(x => x.SaveChanges()); //Act var result = ItemsDataService.UpdateItem("ab70793b-cec8-4eba-99f3-cbad0b1649d0", updatedItemDto); //Assert AssertHelper.AssertAll( () => result.IsSuccess.Should().BeTrue(), () => result.ErrorMessage.Should().BeNull() ); }
public void Should_NotUpdateAnyItemInTheDb_When_AnotherUserHasThisItem() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); ItemsRepositoryMock.Setup(c => c.Update(It.IsAny <Item>())); ItemsRepositoryMock.Setup(c => c.SaveChanges()); var updatedItemDto = new ItemDto() { Id = 5, Name = "Cake updated", NextReplenishmentDate = new DateTime(2020, 10, 10), ReplenishmentPeriod = 4 }; //Act var result = ItemsDataService.UpdateItem("ab70793b-cec8-4eba-99f3-cbad0b1649d0", updatedItemDto); //Assert AssertHelper.AssertAll( () => ItemsRepositoryMock.Verify(x => x.All(), Times.Once()), () => ItemsRepositoryMock.Verify(x => x.Update(It.IsAny <Item>()), Times.Never()), () => ItemsRepositoryMock.Verify(x => x.SaveChanges(), Times.Never()) ); }
public void Should_ReturnErrorResponse_When_RepositorySaveChangesThrowsAnException() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); ItemsRepositoryMock.Setup(c => c.Update(It.IsAny <Item>())); ItemsRepositoryMock.Setup(c => c.SaveChanges()).Throws(new Exception()); var updatedItemDto = new ItemDto() { Id = 1, Name = "Bread updated", NextReplenishmentDate = new DateTime(2020, 10, 10), ReplenishmentPeriod = 4 }; //Act var result = ItemsDataService.UpdateItem("ab70793b-cec8-4eba-99f3-cbad0b1649d0", updatedItemDto); //Assert AssertHelper.AssertAll( () => result.IsSuccess.Should().BeFalse(), () => result.ErrorMessage.Should().Be("An error occurred while updating item") ); }
public void Should_ReturnErrorResponse_When_AnotherUserHasThisItem() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); ItemsRepositoryMock.Setup(c => c.Update(It.IsAny <Item>())); ItemsRepositoryMock.Setup(c => c.SaveChanges()); var updatedItemDto = new ItemDto() { Id = 5, Name = "Cake updated", NextReplenishmentDate = new DateTime(2020, 10, 10), ReplenishmentPeriod = 4 }; //Act var result = ItemsDataService.UpdateItem("ab70793b-cec8-4eba-99f3-cbad0b1649d0", updatedItemDto); //Assert AssertHelper.AssertAll( () => result.IsSuccess.Should().BeFalse(), () => result.ErrorMessage.Should().Be("Current user does not have item with id 5") ); }
public void Should_CheckForItemDtoNullBeforeAllOtherMethodCalls_When_ItemDtoIsNull() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); ItemsRepositoryMock.Setup(c => c.Update(It.IsAny <Item>())); ItemsRepositoryMock.Setup(c => c.SaveChanges()); var updatedItemDto = new ItemDto() { Id = 1, Name = "Bread updated", NextReplenishmentDate = new DateTime(2020, 10, 10), ReplenishmentPeriod = 4 }; //Act var result = ItemsDataService.UpdateItem("ab70793b-cec8-4eba-99f3-cbad0b1649d0", null); //Assert AssertHelper.AssertAll( () => ItemsRepositoryMock.Verify(x => x.All(), Times.Never()), () => ItemsRepositoryMock.Verify(x => x.Update(It.IsAny <Item>()), Times.Never()), () => ItemsRepositoryMock.Verify(x => x.SaveChanges(), Times.Never()) ); }
public void Should_CheckForUserIdEmptyBeforeAllOtherMethodCalls_When_UserIdIsEmpty() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); ItemsRepositoryMock.Setup(c => c.Update(It.IsAny <Item>())); ItemsRepositoryMock.Setup(c => c.SaveChanges()); var updatedItemDto = new ItemDto() { Id = 1, Name = "Bread updated", NextReplenishmentDate = new DateTime(2020, 10, 10), ReplenishmentPeriod = 4 }; //Act var result = ItemsDataService.UpdateItem(string.Empty, updatedItemDto); //Assert AssertHelper.AssertAll( () => ItemsRepositoryMock.Verify(x => x.All(), Times.Never()), () => ItemsRepositoryMock.Verify(x => x.Update(It.IsAny <Item>()), Times.Never()), () => ItemsRepositoryMock.Verify(x => x.SaveChanges(), Times.Never()) ); }
public void Should_UpdateItem_When_InputParametersAreValid() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); var saveObject = new Item(); ItemsRepositoryMock.Setup(c => c.Update(It.IsAny <Item>())) .Callback <Item>((obj) => saveObject = obj); ItemsRepositoryMock.Setup(c => c.SaveChanges()); var updatedItemDto = new ItemDto() { Id = 1, Name = "Bread updated", NextReplenishmentDate = new DateTime(2020, 10, 10), ReplenishmentPeriod = 4 }; //Act var result = ItemsDataService.UpdateItem("ab70793b-cec8-4eba-99f3-cbad0b1649d0", updatedItemDto); //Assert AssertHelper.AssertAll( () => saveObject.Id.Should().Be(1), () => saveObject.Name.Should().Be("Bread updated"), () => saveObject.NextReplenishmentDate.Should().BeSameDateAs(new DateTime(2020, 10, 10)), () => saveObject.ReplenishmentPeriod.Should().Be(4) ); }
public void Should_ReturnErrorResponse_When_ItemDtoIsNull() { //Arrange var allItems = BuildItemsCollection(); ItemsRepositoryMock.Setup(x => x.All()).Returns(allItems); ItemsRepositoryMock.Setup(c => c.Update(It.IsAny <Item>())); ItemsRepositoryMock.Setup(c => c.SaveChanges()); //Act var result = ItemsDataService.UpdateItem("ab70793b-cec8-4eba-99f3-cbad0b1649d0", null); //Assert AssertHelper.AssertAll( () => result.IsSuccess.Should().BeFalse(), () => result.ErrorMessage.Should().Be("An error occurred while updating item") ); }