Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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());
        }
Example #5
0
        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));
        }