public async Task CreateAssignment_RightObjectPassed_ReturnsCreatedAtAction() { // Arrange var controller = new DeckAssignmentsController(flashcardDbContextMock.Object, GetMockUserManager().Object, emailService, logger); var rightAssignment = new DeckAssignmentDTO { Deck = new DeckInfoDTO() { Id = 2, Name = "Teszt csomag 2", Module = Module.A, Deck_number = 2, Status = DeckStatus.Approved }, User = new UserDTO() { Id = "268e543e-2020-ue63-a111-98321798c21", Email = "*****@*****.**", Name = "Teszt User 2", } }; // Act var result = await controller.CreateDeckAssignment(rightAssignment); // Asssert Assert.IsType <CreatedAtActionResult>(result.Result); }
public async Task <ActionResult <DeckAssignmentDTO> > CreateDeckAssignment([FromBody] DeckAssignmentDTO deckAssignmentDTO) { if (!ModelState.IsValid) { _logger.LogError("ModelState is invalid in the CreateDeckAssignment() method"); return(BadRequest(ModelState)); } var deckAssignment = new DeckAssignment { DeckId = deckAssignmentDTO.Deck.Id, ApplicationUserId = deckAssignmentDTO.User.Id }; _context.DeckAssignment.Add(deckAssignment); await _context.SaveChangesAsync(); try { var from = "Tanulókártya"; var subject = "Tanulókártya hozzárendelés"; var name = deckAssignmentDTO.User.Name; var email = deckAssignmentDTO.User.Email; var body = "Kedves <b>" + name + "! </b><br/>" + "A tanulókártya projektben hozzárendeltek egy kártyacsomaghoz!"; await emailService.SendEmail(from, email, subject, body); } catch (System.Exception) { _logger.LogError("BadRequest the CreateDeckAssignment() method"); return(BadRequest(new { message = "SendEmail was not successful. " })); } _logger.LogInformation("Creating assignment in the CreateDeckAssignment() method"); return(CreatedAtAction(nameof(GetDeckAssignmentByUserId), deckAssignment)); }
public async Task CreateDeckAssignment_InvalidObjectPassed_ReturnsBadRequest() { // Arrange var controller = new DeckAssignmentsController(flashcardDbContextMock.Object, GetMockUserManager().Object, emailService, logger); var deckIdMissingAssignment = new DeckAssignmentDTO { Deck = new DeckInfoDTO() { Id = 2, Name = "Teszt csomag 2", Module = Module.A, Deck_number = 2, Status = DeckStatus.Approved }, User = new UserDTO() { Id = "268e543e-2020-ue63-a111-98321798c21", Email = "*****@*****.**", Name = "Teszt User 2", } }; controller.ModelState.AddModelError("DeckId", "Required"); // Act var result = await controller.CreateDeckAssignment(deckIdMissingAssignment); // Asssert Assert.IsType <BadRequestObjectResult>(result.Result); }