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); }
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)); }