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