public void Update_ShouldCallUpdateOnDataLayer_WhenProvidingValidUpdateRequest() { // Arrange var updatedDataDto = new LearningDataDto() { Id = 0, Name = "New Name", Description = "New description", Number = 911, ImageData = "QUJD", ImageTitle = "New Title", CategoryId = 42 }; var expectedLearningData = new LearningData() { LearningDataId = updatedDataDto.Id, Name = updatedDataDto.Name, Description = updatedDataDto.Description, Number = updatedDataDto.Number, CategoryId = updatedDataDto.CategoryId }; var expectedImageData = new ImageData() { LearningDataId = updatedDataDto.Id, Title = updatedDataDto.ImageTitle, Data = Convert.FromBase64String(updatedDataDto.ImageData) }; ImageDataAccessMock.Setup(x => x.UpdateImageData(It.IsAny <ImageData>())).Returns(true); LearningDataAccessMock.Setup(x => x.UpdateLearningData(It.IsAny <LearningData>())).Returns(true); // Act Sut.Update(updatedDataDto); // Assert // We need to verify mocks manually since object arguments are being provided LearningDataAccessMock.Verify(mock => mock.UpdateLearningData( It.Is <LearningData>(data => CompareLearningData(data, expectedLearningData)) )); LearningDataAccessMock.VerifyNoOtherCalls(); ImageDataAccessMock.Verify(mock => mock.UpdateImageData( It.Is <ImageData>(data => CompareImageData(data, expectedImageData)) )); ImageDataAccessMock.VerifyNoOtherCalls(); }
public void Add_ShouldStoreLearningDataInDataLayer_WhenValidObjectIsProvided() { // Arrange var expectedPrimaryKey = 5; var expectedImageData = new ImageData() { LearningDataId = expectedPrimaryKey, Data = LearningDataRepoTestData.DummyImageData1.Data, Title = LearningDataRepoTestData.DummyImageData1.Title }; var expectedLearningData = new LearningData() { LearningDataId = expectedPrimaryKey, Name = LearningDataRepoTestData.DummyLearningData1.Name, Description = LearningDataRepoTestData.DummyLearningData1.Description, Number = LearningDataRepoTestData.DummyLearningData1.Number, CategoryId = LearningDataRepoTestData.DummyLearningData1.CategoryId }; ImageDataAccessMock.Setup(x => x.AddImageData(It.IsAny <ImageData>())).Returns(true); LearningDataAccessMock.Setup(x => x.AddLearningData(It.IsAny <LearningData>())).Returns(expectedPrimaryKey); // Act var actualPrimaryKey = Sut.Add(LearningDataRepoTestData.DummyLearningDto1); // Assert Assert.Equal(expectedPrimaryKey, actualPrimaryKey); // We need to verify mocks manually since object arguments are being provided LearningDataAccessMock.Verify(mock => mock.AddLearningData( It.Is <LearningData>(data => CompareLearningData(data, expectedLearningData)) )); LearningDataAccessMock.VerifyNoOtherCalls(); ImageDataAccessMock.Verify(mock => mock.AddImageData( It.Is <ImageData>(data => CompareImageData(data, expectedImageData)) )); ImageDataAccessMock.VerifyNoOtherCalls(); }