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);
        }
Exemplo n.º 2
0
        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));
        }