Example #1
0
        public void DocumentUpdateDtoProperlyReversedToDocumentUpdate()
        {
            DocumentUpdateDto upDto1 = new DocumentUpdateDto
            {
                Id                  = 1,
                DocumentId          = 1,
                IsPublished         = true,
                LatestTopicsUpdated = "This is the first version of the document.",
                Timestamp           = DateTime.Today
            };

            DocumentUpdate up1 = new DocumentUpdate
            {
                Id                  = 1,
                DocumentId          = 1,
                IsPublished         = true,
                LatestTopicsUpdated = "This is the first version of the document.",
                Timestamp           = DateTime.Today
            };

            DocumentUpdate a2 = _mapper.Map <DocumentUpdate>(upDto1);

            Assert.NotNull(a2);
            Assert.True(up1.Equals(a2));
            Assert.True(up1.Equals(a2, true));
        }
        public bool UpdateDocument(int id, DocumentUpdateDto model)
        {
            var documentToUpdate = _context.Documents.Find(id);

            documentToUpdate.Title      = model.Title;
            documentToUpdate.Content    = model.Content;
            documentToUpdate.Language   = model.Language;
            documentToUpdate.ModifiedAt = DateTime.Now;

            _context.Documents.Update(documentToUpdate);
            return(_context.SaveChanges() == 1);
        }
        public async void PostDocumentUpdateInexistantDocIdReturnsBadRequest()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsController(context, _mapper))
                {
                    DocumentUpdateDto a101 = GetTestDocumentUpdateDto(999, 101);

                    var result = await controller.PostDocumentUpdate(999, a101);

                    Assert.IsType <BadRequestObjectResult>(result);
                }
        }
        public async void PostDocumentUpdateModelStateErrorReturnsBadRequest()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsController(context, _mapper))
                {
                    controller.ModelState.AddModelError("an error", "some error");
                    DocumentUpdateDto a101 = GetTestDocumentUpdateDto(4, 101);

                    var result = await controller.PostDocumentUpdate(4, a101);

                    Assert.IsType <BadRequestObjectResult>(result);
                }
        }
        public async void PostDocumentUpdateCorrectDataCreatesDocumentUpdate()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsController(context, _mapper))
                {
                    DocumentUpdateDto a101 = GetTestDocumentUpdateDto(4, 11, true);

                    var result = await controller.PostDocumentUpdate(4, a101);

                    Assert.NotNull(result);
                    var resultValue = Assert.IsType <CreatedAtActionResult>(result);
                }
        }
        public async void DeleteDocumentUpdateIdDeletesDocumentUpdate()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsController(context, _mapper))
                {
                    DocumentUpdate dup = context.DocumentUpdates.AsNoTracking().Last();

                    var result = await controller.DeleteDocumentUpdate(dup.DocumentId, dup.Id);

                    DocumentUpdateDto a3 = _mapper.Map <DocumentUpdateDto>(dup);

                    Assert.NotNull(result);
                    var okObjectResult = Assert.IsType <OkObjectResult>(result);
                    var resultValue    = okObjectResult.Value;
                    Assert.Equal(a3, resultValue);
                }
        }
Example #7
0
        public void DocumentUpdateEqualsReturnsCorrectValues()
        {
            DocumentUpdateDto up1 = new DocumentUpdateDto
            {
                Id                  = 1,
                DocumentId          = 1,
                IsPublished         = true,
                LatestTopicsUpdated = "This is the first version of the document.",
                Timestamp           = DateTime.Today
            };

            DocumentUpdateDto up2 = new DocumentUpdateDto
            {
                Id                  = 1,
                DocumentId          = 1,
                IsPublished         = true,
                LatestTopicsUpdated = "This is the first version of the document.",
                Timestamp           = DateTime.Today
            };

            DocumentUpdateDto up3 = new DocumentUpdateDto
            {
                Id                  = 3,
                DocumentId          = 2,
                IsPublished         = false,
                LatestTopicsUpdated = "This is the second version of the document.",
                Timestamp           = DateTime.Today.AddDays(1)
            };

            DocumentUpdateDto up4 = new DocumentUpdateDto
            {
                Id                  = 1,
                DocumentId          = 2,
                IsPublished         = false,
                LatestTopicsUpdated = "This is the second version of the document.",
                Timestamp           = DateTime.Today.AddDays(1)
            };

            Assert.True(up1.Equals(up2));
            Assert.True(up1.Equals(up2, true));
            Assert.False(up1.Equals(up3));
            Assert.False(up1.Equals(up3, true));
            Assert.True(up1.Equals(up4));
            Assert.False(up1.Equals(up4, true));
        }
        public ActionResult Update(int id, [FromBody] DocumentUpdateDto document)
        {
            // DocumentService.Update() NEEDS the former values and is
            // on the client to provide the old values and new ones
            var queriedDocument = _documentService.GetDocumentById(id);

            if (queriedDocument.OwnerId != int.Parse(User.Identity.Name))
            {
                return(Unauthorized());
            }

            var response = _documentService.UpdateDocument(id, document);

            if (response)
            {
                return(Ok());
            }
            return(NotFound());
        }
        public async void GetDocumentUpdatesReturnsListOfUpdates()
        {
            using (var context = DbTestContext.GenerateContextWithData())
                using (var controller = new DocumentsInternalController(context, _mapper))
                {
                    var result = await controller.GetDocumentUpdates(4);

                    DocumentUpdateDto upTest = _mapper.Map <DocumentUpdateDto>(context.DocumentUpdates.Last(u => u.DocumentId == 4));

                    Assert.NotNull(result);
                    var okObjectResult = Assert.IsType <OkObjectResult>(result);
                    var resultValue    = okObjectResult.Value;
                    Assert.IsAssignableFrom <IEnumerable <DocumentUpdateDto> >(resultValue);
                    Assert.NotEmpty((IEnumerable <DocumentUpdateDto>)resultValue);

                    IEnumerable <DocumentUpdateDto> resultValueList = (IEnumerable <DocumentUpdateDto>)resultValue;
                    Assert.True(resultValueList.Count().Equals(10));

                    DocumentUpdateDto up = resultValueList.Single(u => u.Id == upTest.Id);

                    Assert.True(upTest.Equals(up));
                    Assert.True(upTest.Equals(up, true));
                }
        }
Example #10
0
        public async Task <IActionResult> PostDocumentUpdate([FromRoute] int documentId, [FromBody] DocumentUpdateDto documentUpdate)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (documentId != documentUpdate.DocumentId)
            {
                ModelState.AddModelError("Invalid Document ID", "The Document ID supplied in the query and the body of the request do not match.");
                return(BadRequest(ModelState));
            }

            if (!DocumentExists(documentId))
            {
                ModelState.AddModelError("Invalid Document ID", "The Document ID supplied in the does not match an existing document.");
                return(BadRequest(ModelState));
            }

            if (documentUpdate.Timestamp.Year == 1)
            {
                documentUpdate.Timestamp = DateTime.UtcNow;
            }

            DocumentUpdate reversedUpdate = _mapper.Map <DocumentUpdate>(documentUpdate);


            _context.DocumentUpdates.Add(reversedUpdate);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception xpc)
            {
                ModelState.AddModelError("Error", xpc.ToString());
                return(BadRequest(ModelState));
            }

            return(CreatedAtAction("GetDocumentUpdate", new { documentId = reversedUpdate.DocumentId, updateId = reversedUpdate.Id }, _mapper.Map <DocumentUpdateDto>(reversedUpdate)));
        }
Example #11
0
        public async Task <IActionResult> PutDocumentUpdate([FromRoute] int documentId, [FromRoute] int updateId, [FromBody] DocumentUpdateDto documentUpdate)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (updateId != documentUpdate.Id)
            {
                ModelState.AddModelError("Invalid Update ID", "The Update ID supplied in the query and the body of the request do not match.");
                return(BadRequest(ModelState));
            }

            if (documentId != documentUpdate.DocumentId)
            {
                ModelState.AddModelError("Invalid Document ID", "The Document ID supplied in the query and the body of the request do not match.");
                return(BadRequest(ModelState));
            }

            if (!DocumentExists(documentId))
            {
                ModelState.AddModelError("Invalid Document ID", "The Document ID supplied in the does not match an existing document.");
                return(BadRequest(ModelState));
            }

            var documentUpdateReversed = _mapper.Map <DocumentUpdate>(documentUpdate);

            _context.Entry(documentUpdateReversed).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException xcp)
            {
                if (!DocumentUpdateExists(updateId))
                {
                    return(NotFound());
                }
                else
                {
                    ModelState.AddModelError("Error", xcp.ToString());
                    return(BadRequest(ModelState));
                }
            }

            return(NoContent());
        }
 public bool UpdateDocument(int id, DocumentUpdateDto model)
 {
     return(true);
 }