public async Task PostWordCommandHandler_ModifyAnotherUserWord_WordModified() { using var context = TestHelper.CreateInMemoryContext("PostWordCommandHandler_ModifyAnotherUserWord_WordModified"); var userId = Guid.NewGuid(); SeedInMemoryDatabase(context, userId); var handler = new PostWordCommandHandler(new UnitOfWork(context)); var request = new PostWordRequestModel { UserId = userId.ToString(), Word = new Shared.WordDto { Id = 1, OriginalWord = "NewOriginalWord", TranslatedWord = "NewTranslatedWord", Definition = "NewDefinition", ExampleUse = "NewExampleUse", Pronunciation = "NewPronunciation", }, CourseId = "30" }; var response = await handler.Handle(request, CancellationToken.None); response.IsSucceed.Should().BeFalse(); response.Error.Should().Be("You can modify only words that belong to your course"); }
public async Task PostWordCommandHandler_ModifyWord_WordModified() { using var context = TestHelper.CreateInMemoryContext("PostWordCommandHandler_ModifyWord_WordModified"); var userId = Guid.NewGuid(); SeedInMemoryDatabase(context, userId); var handler = new PostWordCommandHandler(new UnitOfWork(context)); var request = new PostWordRequestModel { UserId = userId.ToString(), Word = new Shared.WordDto { Id = 3, OriginalWord = "NewOriginalWord", TranslatedWord = "NewTranslatedWord", Definition = "NewDefinition", ExampleUse = "NewExampleUse", Pronunciation = "NewPronunciation", }, CourseId = "30" }; var response = await handler.Handle(request, CancellationToken.None); response.IsSucceed.Should().BeTrue(); (await context.Words.CountAsync()).Should().Be(3); var modifiedWord = context.Words.Find(3); modifiedWord.OriginalWord.Should().Be("NewOriginalWord"); modifiedWord.TranslatedWord.Should().Be("NewTranslatedWord"); modifiedWord.Definition.Should().Be("NewDefinition"); modifiedWord.ExampleUse.Should().Be("NewExampleUse"); modifiedWord.Pronunciation.Should().Be("NewPronunciation"); modifiedWord.HasAudioGenerated.Should().BeFalse(); }
public async Task <IActionResult> PostWord([FromBody] PostWordRequest request) { var requestModel = new PostWordRequestModel { UserId = User.FindFirstValue(ClaimTypes.NameIdentifier), CourseId = request.CourseId, Word = request.Word }; var response = await _mediator.Send(requestModel); return(response.IsSucceed ? Ok() : BadRequest(response.Error)); }
public async Task PostWordCommandHandler_AddNewWordForAnotherUserCourse_ReturnError() { using var context = TestHelper.CreateInMemoryContext("PostWordCommandHandler_AddNewWordForAnotherUserCourse_ReturnError"); var userId = Guid.NewGuid(); SeedInMemoryDatabase(context, userId); var handler = new PostWordCommandHandler(new UnitOfWork(context)); var request = new PostWordRequestModel { UserId = userId.ToString(), Word = new Shared.WordDto { OriginalWord = "MyOriginalWord" }, CourseId = "10" }; var response = await handler.Handle(request, CancellationToken.None); response.IsSucceed.Should().BeFalse(); response.Error.Should().Be("You can modify only your courses"); }
public async Task PostWordCommandHandler_AddNewWord_WordAdded() { using var context = TestHelper.CreateInMemoryContext("PostWordCommandHandler_AddNewWord_WordAdded"); var userId = Guid.NewGuid(); SeedInMemoryDatabase(context, userId); var handler = new PostWordCommandHandler(new UnitOfWork(context)); var request = new PostWordRequestModel { UserId = userId.ToString(), Word = new Shared.WordDto { OriginalWord = "MyOriginalWord" }, CourseId = "30" }; var response = await handler.Handle(request, CancellationToken.None); response.IsSucceed.Should().BeTrue(); (await context.Words.CountAsync()).Should().Be(4); (await context.Words.FirstAsync(w => w.OriginalWord == "MyOriginalWord")) .HasAudioGenerated.Should().BeFalse(); }