public void Get_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>();

            mockBookAssignmentService.Setup(r => r.GetAssignedBook(123)).Returns(bookAssignment);
            var controller = new BooksController(mockBookService.Object, mockBookAssignmentService.Object);

            var actionResult = controller.Assign(123);
            var result       = Assert.IsType <OkObjectResult>(actionResult);
            var assignedBook = Assert.IsType <BookAssignToStudent>(result.Value);

            Assert.True(assignedBook.Book.IsIssued);

            mockBookAssignmentService.Verify(s => s.GetAssignedBook(123), Times.Once());
        }
        public void Assign_Book_To_Student()
        {
            var mockBookService           = new Mock <IBookService>();
            var mockBookAssignmentService = new Mock <IBookAssignmentService>();

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

            var request = new BookAssignmentRequest()
            {
                BookId    = 1,
                StudentId = 100
            };

            var actionResult = controller.Assign(request);
            var result       = Assert.IsType <CreatedAtActionResult>(actionResult);

            Assert.Equal("Assign", result.ActionName);

            mockBookAssignmentService.Verify(s => s.AssignBook(1, 100), Times.Once());
        }