Пример #1
0
        public void EditQuestion_Must_Return_QuestionEditBM_Of_Given_Question()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();
            var testQBM            = GetTestQuestionBM(Category.AndroidDevelopment);

            //Act
            db.Users.Add(testUser);
            db.SaveChanges();
            var addedQuestion = discussionsService.AddQuestion(testQBM, testUser);
            var editBM        = discussionsService.GetQuestionEditBindingModel(addedQuestion.Id, testUser.Id);

            editBM.Title    = "Testing buddy";
            editBM.Content  = "This must be long string i think";
            editBM.Category = Category.JavaScript;
            editBM.Tags     = editBM.Tags + " nice go back";
            var result = discussionsService.EditQuestion(editBM, testUser.Id);

            //Assert
            Assert.True(result.Id == addedQuestion.Id);
            Assert.True(result.Title == editBM.Title);
            Assert.True(result.Category == editBM.Category);

            Assert.True(result.Tags.Count == 4);
            Assert.True(result.Tags.Any(x => x.Name == "web"));
            Assert.True(result.Tags.Any(x => x.Name == "nice"));
            Assert.True(result.Tags.Any(x => x.Name == "go"));
            Assert.True(result.Tags.Any(x => x.Name == "back"));
        }