public async Task Create_HappyFlow() { // Arrange var url = "/api/note"; var notebook = await WolkDbContext.CreateAndSaveNotebook(); var model = new MutateNoteModel { Title = Guid.NewGuid().ToString(), Content = Guid.NewGuid().ToString(), NotebookId = notebook.Id, NoteType = NoteType.Markdown }; var request = new HttpRequestMessage(HttpMethod.Post, url) { Content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, MimeTypes.Json) }; var token = await GetJwt(); request.AddJwtBearer(token); // Act using var response = await HttpClient.SendAsync(request); // Assert Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); var content = await response.Content.ReadAsStringAsync(); var returnedNote = JsonConvert.DeserializeObject <NoteDto>(content); var note = await WolkDbContext.Notes.SingleAsync(); ShouldBeEqual(note, returnedNote); }
public async Task Update_HappyFlow() { // Arrange var notebook1 = await WolkDbContext.CreateAndSaveNotebook(); var notebook2 = await WolkDbContext.CreateAndSaveNotebook(); var note = await WolkDbContext.CreateAndSaveNote(notebook1); var url = $"/api/note/{note.Id}"; var model = new MutateNoteModel { Title = Guid.NewGuid().ToString(), Content = Guid.NewGuid().ToString(), NotebookId = notebook2.Id, NoteType = NoteType.Markdown }; var request = new HttpRequestMessage(HttpMethod.Put, url) { Content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, MimeTypes.Json) }; var token = await GetJwt(); request.AddJwtBearer(token); // Act using var response = await HttpClient.SendAsync(request); // Assert Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode); ShouldBeEqual(note, model); }
public async Task Create_NotebookNotFound_ShouldReturn400() { // Arrange var url = "/api/note"; var notebook = await WolkDbContext.CreateAndSaveNotebook(); var model = new MutateNoteModel { Title = Guid.NewGuid().ToString(), Content = Guid.NewGuid().ToString(), NotebookId = notebook.Id + 1, NoteType = NoteType.Markdown }; var request = new HttpRequestMessage(HttpMethod.Post, url) { Content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, MimeTypes.Json) }; var token = await GetJwt(); request.AddJwtBearer(token); // Act using var response = await HttpClient.SendAsync(request); // Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task <ActionResult> Update([FromBody] MutateNoteModel noteModel, [FromRoute] long id) { var command = Mapper.Map <UpdateNoteCommand>(noteModel); command.Id = id; await Mediator.Send(command); return(NoContent()); }
public async Task <ActionResult <NoteDto> > Create([FromBody] MutateNoteModel noteModel) { var note = await Mediator.Send(Mapper.Map <CreateNoteCommand>(noteModel)); return(CreatedAtAction(nameof(Get), new { id = note.Id }, note)); }