public AddNotificationTransactionHandlerTests()
        {
            var chargeCalculator = A.Fake<INotificationChargeCalculator>();
            A.CallTo(() => chargeCalculator.GetValue(A<Guid>.Ignored)).Returns(200.00m);

            var transactionsList = new List<NotificationTransaction>();
            transactionsList.Add(new NotificationTransaction(new NotificationTransactionData
            {
                Date = NewDate,
                NotificationId = NotificationId,
                Credit = 100.00m,
                PaymentMethod = PaymentMethod.BacsChaps
            }));

            var repository = A.Fake<INotificationTransactionRepository>();
            A.CallTo(() => repository.GetTransactions(NotificationId)).Returns(transactionsList);
            
            context.ShipmentInfos.Add(new TestableShipmentInfo { NotificationId = NotificationId });

            assessment = new NotificationAssessment(NotificationId);
            ObjectInstantiator<NotificationAssessment>.SetProperty(x => x.Status, NotificationStatus.NotificationReceived, assessment);
            
            context.NotificationAssessments.Add(assessment);

            context.NotificationApplications.Add(new TestableNotificationApplication { Id = NotificationId });
            
            var assessmentRepository = A.Fake<INotificationAssessmentRepository>();
            A.CallTo(() => assessmentRepository.GetByNotificationId(NotificationId)).Returns(assessment);

            handler = new AddNotificationTransactionHandler(context, new Transaction(assessmentRepository, repository, new NotificationTransactionCalculator(repository, chargeCalculator)));
        }
        public AddNotificationTransactionHandlerTests()
        {
            var chargeCalculator = A.Fake <INotificationChargeCalculator>();

            A.CallTo(() => chargeCalculator.GetValue(A <Guid> .Ignored)).Returns(TotalBillable);

            transactions = new List <NotificationTransaction>();
            var transactionRepository = A.Fake <INotificationTransactionRepository>();

            A.CallTo(() => transactionRepository.GetTransactions(NotificationId)).Returns(transactions);

            calculatorTransactions = new List <NotificationTransaction>();
            var calculatorRepository = A.Fake <INotificationTransactionRepository>();

            A.CallTo(() => calculatorRepository.GetTransactions(NotificationId)).Returns(calculatorTransactions);

            context.ShipmentInfos.Add(new TestableShipmentInfo {
                NotificationId = NotificationId
            });

            assessment = new NotificationAssessment(NotificationId);
            ObjectInstantiator <NotificationAssessment> .SetProperty(x => x.Status, NotificationStatus.NotificationReceived, assessment);

            context.NotificationAssessments.Add(assessment);

            context.NotificationApplications.Add(new TestableNotificationApplication {
                Id = NotificationId
            });

            var assessmentRepository = A.Fake <INotificationAssessmentRepository>();

            A.CallTo(() => assessmentRepository.GetByNotificationId(NotificationId)).Returns(assessment);

            handler = new AddNotificationTransactionHandler(context, new Transaction(assessmentRepository, transactionRepository, new NotificationTransactionCalculator(calculatorRepository, chargeCalculator)));
        }