public async Task Edit_WithValidData_ShouldSaveUpdatedTurorial() { //Arrange var db = this.SetDb(); await this.SeedTutorials(db); var repo = new Repository <Tutorial>(db); var service = new TutorialService(repo, this.Mapper, null); var tutorial = await repo.GetByIdAsync(2); db.Entry(tutorial).State = EntityState.Detached; var model = this.Mapper.Map <Tutorial, AddTutorialViewModel>(tutorial); model.Title = "Golden leaf"; //Act await service.UpdateTutorial(model); var expectedTitle = "Golden leaf"; var actualTitle = repo.All().SingleOrDefault(t => t.Id == 2).Title; //Assert Assert.Equal(expectedTitle, actualTitle); }
public void UpdateTutorial_Success_Test() { // Arrange TutorialDTO dto = SampleTutorialDTO(1); // create mock for repository var mock = new Mock <ITutorialRepository>(); mock.Setup(s => s.UpdateTutorial(Moq.It.IsAny <R_Tutorial>())).Verifiable(); // service TutorialService tutorialService = new TutorialService(); TutorialService.Repository = mock.Object; // Act tutorialService.UpdateTutorial(dto); // Assert Assert.IsNotNull(dto); }
public async Task Edit_WithDuplicateTitle_ShouldSaveUpdatedTurorialThrow() { //Arrange var db = this.SetDb(); await this.SeedTutorials(db); var repo = new Repository <Tutorial>(db); var service = new TutorialService(repo, this.Mapper, null); var tutorial = await repo.GetByIdAsync(2); db.Entry(tutorial).State = EntityState.Detached; var model = this.Mapper.Map <Tutorial, AddTutorialViewModel>(tutorial); model.Title = "Lotus Flower"; //Act //Assert await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.UpdateTutorial(model)); }