public void Put_WithInvalidProgressDto_ThrowBadRequest()
        {
            HttpResponseException exception = null;
            try
            {
                ProgressDto dto = new ProgressDto(progressesTest[0]);
                dto.Isbn = null;

                sut.ModelState.AddModelError("OLId", "Can't find the value");
                sut.Put(1, dto);
            }
            catch (HttpResponseException ex)
            {
                exception = ex;
            }
            Assert.IsNotNull(exception);
            Assert.AreEqual(HttpStatusCode.BadRequest, exception.Response.StatusCode);
        }
        public void Put_WithValidValues_CallsUpdateAndCommit()
        {
            ProgressDto dto = new ProgressDto(progressesTest[0]);

            uowMock.Setup(u => u.Progresses).Returns(progressRepositoryMock.Object);

            HttpResponseMessage actual = sut.Put(1, dto);

            Assert.AreEqual(HttpStatusCode.OK, actual.StatusCode);

            progressRepositoryMock.Verify(p => p.Update(It.IsAny<Progress>()), Times.Once());
            uowMock.Verify(u => u.Commit(), Times.Once());
        }
        public void Post_WithValidValues_CallsAddAndCommit()
        {
            ProgressDto dto = new ProgressDto(progressesTest[0]);
            uowMock.Setup(u => u.Progresses).Returns(progressRepositoryMock.Object);

            HttpResponseMessage actual = sut.Post(dto);

            Assert.AreEqual(HttpStatusCode.Created, actual.StatusCode);

            progressRepositoryMock.Verify(p => p.Add(It.IsAny<Progress>()), Times.Once());
            uowMock.Verify(u => u.Commit(), Times.Once());

            Assert.AreEqual("http://localhost/api/progress/1", actual.Headers.Location.ToString());
        }