public void Extend_DueDate_Of_Assigned_Book()
        {
            var bookAssignment = new BookAssignToStudent
            {
                Id     = 1,
                BookId = 123,
                Book   = new Book {
                    Id = 123, Name = "Software Engineering", Author = "ABC", IsIssued = true
                },
                IssueDate = DateTime.Now,
                DueDate   = DateTime.Now.AddDays(7),
                StudentId = 100,
                Student   = new Student {
                    Id = 1, Name = "Ali"
                }
            };

            var mockBookService           = new Mock <IBookService>();
            var mockBookAssignmentService = new Mock <IBookAssignmentService>();
            var newDueDate = DateTime.Now.AddDays(10);

            mockBookAssignmentService.Setup(r => r.ExtendDueDate(123, 100, newDueDate)).Returns("Success");
            var controller = new BooksController(mockBookService.Object, mockBookAssignmentService.Object);

            var request = new ExtendDueDateRequest {
                BookId = 123, StudentId = 100, NewDueDate = newDueDate
            };
            var actionResult = controller.Extend(request);

            Assert.IsType <NoContentResult>(actionResult);

            mockBookAssignmentService.Verify(s => s.ExtendDueDate(123, 100, newDueDate), Times.Once());
        }
Exemplo n.º 2
0
        public async Task Api_Extend_Return_Date()
        {
            //using (var client = new TestServerProvider().Client)
            //{
            var books = new List <Book>
            {
                new Book {
                    Id = 123, Author = "ABC", Name = "Test Book", IsIssued = false
                }
            };

            var students = new List <Student>
            {
                new Student {
                    Id = 100, Name = "Student 1"
                }
            };

            var bookAssignments = new List <BookAssignmentRequest>
            {
                new BookAssignmentRequest {
                    BookId = 123, StudentId = 100
                }
            };

            await CallAPI($"api/Books/", books, client);
            await CallAPI($"api/Student/", students, client);
            await CallAPI($"api/Books/Assign", bookAssignments, client);

            var extendDueDateRequest = new ExtendDueDateRequest
            {
                BookId     = 123,
                StudentId  = 100,
                NewDueDate = DateTime.Now.AddDays(10)
            };

            var content = new StringContent(JsonConvert.SerializeObject(extendDueDateRequest), Encoding.UTF8, "application/json");

            var response = await client.PutAsync($"api/Books/Extend", content);

            response.EnsureSuccessStatusCode();

            if (response.Content != null)
            {
                var responseContent = await response.Content.ReadAsStringAsync();

                Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
            }
            //}
        }
Exemplo n.º 3
0
        public IActionResult Extend([FromBody] ExtendDueDateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var bookId     = request.BookId;
            var studentId  = request.StudentId;
            var newDueDate = request.NewDueDate;

            var response = _bookAssignmentService.ExtendDueDate(bookId, studentId, newDueDate);

            if (response.Equals("Success"))
            {
                return(NoContent());
            }
            else
            {
                return(BadRequest(response));
            }
        }