Beispiel #1
0
        public void CalculateFine_WhenCalledWithStudentId_ReturnStudentFine(string returnDateString, double fineAmount)
        {
            // Arrange
            int      studentId  = 1618017;
            DateTime issueDate  = Convert.ToDateTime("10/19/2019");
            DateTime returnDate = Convert.ToDateTime(returnDateString);
            double   Fine       = fineAmount;

            var bookIssueRepositoryMock  = _mock.Mock <IBookIssueRepository>();
            var returnBookRepositoryMock = _mock.Mock <IReturnBookRepository>();
            var studentRepositoryMock    = _mock.Mock <IStudentRepository>();
            var unitOfWorkLibraryService = _mock.Mock <IUnitOfWorkLibraryService>();

            bookIssueRepositoryMock.Setup(x => x.GetBookIssueDate(studentId)).Returns(issueDate);
            returnBookRepositoryMock.Setup(x => x.GetBookReturnDate(studentId)).Returns(returnDate);
            studentRepositoryMock.Setup(x => x.SetStudentFine(studentId, Fine));

            unitOfWorkLibraryService.Setup(x => x.BookIssueRepositor).Returns(bookIssueRepositoryMock.Object);
            unitOfWorkLibraryService.Setup(x => x.ReturnBookRepository).Returns(returnBookRepositoryMock.Object);
            unitOfWorkLibraryService.Setup(x => x.StudentRepository).Returns(studentRepositoryMock.Object);

            _reportingService = _mock.Create <ReportingService>
                                    (new TypedParameter(typeof(UnitOfWorkLibraryService), unitOfWorkLibraryService.Object));

            // Act
            var actualFine = _reportingService.CalculateFine(studentId);



            // Assert
            //actualFine.ShouldBe(Fine);
            //unitOfWorkLibraryService.VerifyAll();
            Assert.AreEqual(Fine, actualFine);
        }
Beispiel #2
0
        public bool ReturnBook(int Id, string Barcode)
        {
            bool IsReturned;

            try
            {
                var    IssueDate  = _LibraryUnitOfWork.BookIssueRepository.GetBookIssueDate(Id, Barcode);
                var    ReturnDate = DateTime.UtcNow;
                double LateFee    = _reportingService.CalculateFine(ReturnDate, IssueDate);
                _LibraryUnitOfWork.ReturnBookRepository.ReturnBook(Id, Barcode, LateFee);
                _LibraryUnitOfWork.Save();
                IsReturned = true;
            }
            catch (Exception)
            {
                IsReturned = false;
            }
            return(IsReturned);
        }
 public double CheckFine(int Id)
 {
     return(_iReportingService.CalculateFine(Id));
 }