private void TestPutRequestCompleted() { // Arrange var badSource = new ToDoTaskPut { Completed = "hello world" }; var goodUpperSource = new ToDoTaskPut { Completed = "TRUE" }; var goodLowerSource = new ToDoTaskPut { Completed = "false" }; // Act var badResult = _validator.Validate(badSource); var goodUpperResult = _validator.Validate(goodUpperSource); var goodLowerResult = _validator.Validate(goodLowerSource); // Assert Assert.False(badResult.IsValid); Assert.True(goodUpperResult.IsValid); Assert.True(goodLowerResult.IsValid); Assert.Equal(1, badResult.Errors.Count); Assert.False(goodUpperResult.Errors.Any()); Assert.False(goodLowerResult.Errors.Any()); Assert.Equal(ValidationLibrary.BooleanError, badResult.Errors.Single().ErrorMessage); }
private void TestPutRequestAllValues() { // Arrange var badSource = new ToDoTaskPut { Completed = "hello world", DueDate = "hello world" }; var goodSource = new ToDoTaskPut { Completed = "true", DueDate = DateTime.Today.ToString("yyyy-MM-dd") }; // Act var badResult = _validator.Validate(badSource); var goodResult = _validator.Validate(goodSource); // Assert Assert.False(badResult.IsValid); Assert.True(goodResult.IsValid); Assert.Equal(2, badResult.Errors.Count); Assert.False(goodResult.Errors.Any()); Assert.Equal(ValidationLibrary.BooleanError, badResult.Errors.Single(e => e.PropertyName == "Completed") .ErrorMessage); Assert.Equal(ValidationLibrary.ValidDateError, badResult.Errors.Single(e => e.PropertyName == "DueDate") .ErrorMessage); }
public async Task <ActionResult <ToDoTask> > PutAsync([FromRoute] Guid id, [FromBody] ToDoTaskPut request) { // Read from the database and return notfound if they gave us the wrong ID var list = await _taskListRepository.FirstOrDefaultAsync(tl => tl.Id == UserId && tl.Entity.Any(t => t.Id == id)); if (list == null) { return(NotFound()); } var data = list.Entity.Single(t => t.Id == id); // If we've gotten here then we have a valid object map to strongly typed version var entity = _mapper.Map <ToDoTask>(request, id); var compositeTask = new ToDoTask { Id = id, Completed = entity.Completed.HasValue ? entity.Completed.Value ? true : default(bool?) : data.Completed, Description = entity.Description ?? data.Description, DueDate = entity.DueDate ?? data.DueDate }; // TODO: _messageSession.Send(); // Return back composite graph of what's in the DB & what was sent in return(Ok(compositeTask)); }
private void TestPutRequestEmpty() { // Arrange var source = new ToDoTaskPut(); // Act var result = _validator.Validate(source); // Assert Assert.False(result.IsValid); Assert.Equal(1, result.Errors.Count); Assert.Equal(ValidationLibrary.AtLeastOneRequired, result.Errors.Single().ErrorMessage); }
private void TestToDoPutMappingJunk() { // Arrange var expectedTimeStamp = DateTime.UtcNow; var expectedId = SequentialGuidGenerator.Instance.NewGuid(expectedTimeStamp); var expected = new ToDoTaskPut { Completed = "Hello World!", Description = "Hello World!", DueDate = "Hello World!" }; // Act var actual = Mapper.Map <ToDoTask>(expectedId, expected); // Assert Assert.Equal(expectedId, actual.Id); Assert.Equal(expectedTimeStamp, actual.Id.ToDateTime()); Assert.Null(actual.Completed); Assert.Equal(expected.Description, actual.Description); Assert.Null(actual.DueDate); }
private void TestPutRequestDueDates() { // Arrange var badFormatSource = new ToDoTaskPut { DueDate = "hello world" }; var badDateSource = new ToDoTaskPut { DueDate = "2022-02-30" }; var pastDateSource = new ToDoTaskPut { DueDate = "2002-01-31" }; var goodDateSource = new ToDoTaskPut { DueDate = DateTime.Today.ToString("yyyy-MM-dd") }; // Act var badFormatResult = _validator.Validate(badFormatSource); var badDateValueResult = _validator.Validate(badDateSource); var pastDateResult = _validator.Validate(pastDateSource); var goodDateResult = _validator.Validate(goodDateSource); // Assert Assert.False(badFormatResult.IsValid); Assert.False(badDateValueResult.IsValid); Assert.False(pastDateResult.IsValid); Assert.True(goodDateResult.IsValid); Assert.Equal(1, badFormatResult.Errors.Count); Assert.Equal(1, badDateValueResult.Errors.Count); Assert.Equal(1, pastDateResult.Errors.Count); Assert.False(goodDateResult.Errors.Any()); Assert.Equal(ValidationLibrary.ValidDateError, badFormatResult.Errors.Single().ErrorMessage); Assert.Equal(ValidationLibrary.ValidDateError, badDateValueResult.Errors.Single().ErrorMessage); Assert.Equal(ValidationLibrary.FutureDateError, pastDateResult.Errors.Single().ErrorMessage); }
private void TestToDoPutMappingComplete() { // Arrange var expectedTimeStamp = DateTime.UtcNow; var expectedId = SequentialGuidGenerator.Instance.NewGuid(expectedTimeStamp); var expected = new ToDoTaskPut { Completed = "true", Description = "My ToDo Update", DueDate = DateTime.Today.ToString("yyyy-MM-dd") }; // Act var actual = Mapper.Map <ToDoTask>(expectedId, expected); // Assert Assert.Equal(expectedId, actual.Id); Assert.Equal(expectedTimeStamp, actual.Id.ToDateTime()); Assert.True(actual.Completed); Assert.Equal(expected.Description, actual.Description); Assert.Equal( SystemClock.Instance.InTzdbSystemDefaultZone().GetCurrentDate(), actual.DueDate); }