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)));
        }
Exemplo n.º 2
0
        public async Task GetNotificationAssessmentByIdChecksAuthorization()
        {
            var notification = NotificationApplicationFactory.Create(userId, NotificationType.Recovery,
                                                                     UKCompetentAuthority.England, 20181);

            context.NotificationApplications.Add(notification);
            context.SaveChanges();

            var notificationId = notification.Id;

            var assessment = new NotificationAssessment(notificationId);

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

            context.NotificationAssessments.Add(assessment);
            context.SaveChanges();

            var repository = new NotificationAssessmentRepository(context,
                                                                  notificationApplicationAuthorization);

            await repository.GetByNotificationId(notificationId);

            A.CallTo(() => notificationApplicationAuthorization.EnsureAccessAsync(notificationId)).MustHaveHappened();

            context.DeleteOnCommit(assessment);
            await context.SaveChangesAsync();

            context.DeleteOnCommit(notification);
            await context.SaveChangesAsync();
        }
Exemplo n.º 3
0
 public NotificationAssessmentStatusTests()
 {
     notificationId         = new Guid("C4C62654-048C-45A2-BF7F-9837EFCF328F");
     notificationAssessment = new NotificationAssessment(notificationId);
     progressService        = A.Fake <INotificationProgressService>();
     A.CallTo(() => progressService.IsComplete(notificationId)).Returns(true);
 }
 public NotificationAssessmentStatusTests()
 {
     notificationId = new Guid("C4C62654-048C-45A2-BF7F-9837EFCF328F");
     notificationAssessment = new NotificationAssessment(notificationId);
     progressService = A.Fake<INotificationProgressService>();
     A.CallTo(() => progressService.IsComplete(notificationId)).Returns(true);
 }
        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)));
        }
        private void AddNotificationAssessments(Guid sourceId, Guid destinationId)
        {
            var sourceAssessment      = new NotificationAssessment(sourceId);
            var destinationAssessment = new NotificationAssessment(destinationId);

            context.NotificationAssessments.Add(sourceAssessment);
            context.NotificationAssessments.Add(destinationAssessment);
        }
Exemplo n.º 7
0
        public async Task HandleAsync(NotificationCreatedEvent @event)
        {
            var notificationAssessment       = new NotificationAssessment(@event.Notification.Id);
            var financialGuaranteeCollection = new FinancialGuaranteeCollection(@event.Notification.Id);

            context.NotificationAssessments.Add(notificationAssessment);
            context.FinancialGuarantees.Add(financialGuaranteeCollection);

            await context.SaveChangesAsync();
        }
        public SetNotificationReceivedDateHandlerTests()
        {
            context = new TestIwsContext();
            assessment = new NotificationAssessment(notificationId);
            ObjectInstantiator<NotificationAssessment>.SetProperty(x => x.Status, NotificationStatus.Submitted, assessment);

            context.NotificationAssessments.Add(assessment);

            handler = new SetNotificationReceivedDateHandler(context);
            message = new SetNotificationReceivedDate(notificationId, notificationReceivedDate);
        }
        public SetNotificationReceivedDateHandlerTests()
        {
            context    = new TestIwsContext();
            assessment = new NotificationAssessment(notificationId);
            ObjectInstantiator <NotificationAssessment> .SetProperty(x => x.Status, NotificationStatus.Submitted, assessment);

            context.NotificationAssessments.Add(assessment);

            handler = new SetNotificationReceivedDateHandler(context);
            message = new SetNotificationReceivedDate(notificationId, notificationReceivedDate);
        }
        public SetCommencedDateHandlerTests()
        {
            context = new TestIwsContext();
            var assessment = new NotificationAssessment(notificationId);
            ObjectInstantiator<NotificationAssessment>.SetProperty(x => x.Status, NotificationStatus.NotificationReceived, assessment);
            ObjectInstantiator<NotificationDates>.SetProperty(x => x.PaymentReceivedDate, receivedDate, assessment.Dates);

            context.NotificationAssessments.Add(assessment);

            message = new SetCommencedDate(notificationId, commencementDate, "Officer");
            handler = new SetCommencedDateHandler(context);
        }
Exemplo n.º 11
0
        public async Task GetNotificationDatesSummaryByIdChecksAuthorization()
        {
            var notification = NotificationApplicationFactory.Create(userId, NotificationType.Recovery,
                                                                     UKCompetentAuthority.England, 20181);

            context.NotificationApplications.Add(notification);
            context.SaveChanges();

            var notificationId = notification.Id;

            var decisionRequiredBy = new DecisionRequiredBy(A.Fake <IDecisionRequiredByCalculator>(),
                                                            A.Fake <IFacilityRepository>());
            var assessmentRepository  = A.Fake <INotificationAssessmentRepository>();
            var applicationRepository = A.Fake <INotificationApplicationRepository>();
            var transactionCalculator = A.Fake <INotificationTransactionCalculator>();
            var assessment            = new NotificationAssessment(notificationId);

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

            A.CallTo(() => assessmentRepository.GetByNotificationId(notificationId))
            .Returns(assessment);
            A.CallTo(() => applicationRepository.GetById(notificationId)).Returns(notification);

            var transaction = new NotificationTransaction(
                new NotificationTransactionData
            {
                Credit         = 1,
                Date           = new DateTime(2017, 1, 1),
                NotificationId = notificationId,
                PaymentMethod  = PaymentMethod.Card
            });

            A.CallTo(() => transactionCalculator.PaymentReceivedDate(notificationId))
            .Returns(transaction);
            A.CallTo(() => transactionCalculator.LatestPayment(notificationId))
            .Returns(transaction);
            A.CallTo(() => transactionCalculator.IsPaymentComplete(notificationId)).Returns(true);

            var repository = new NotificationAssessmentDatesSummaryRepository(decisionRequiredBy,
                                                                              assessmentRepository,
                                                                              applicationRepository,
                                                                              transactionCalculator,
                                                                              notificationApplicationAuthorization);

            await repository.GetById(notificationId);

            A.CallTo(() => notificationApplicationAuthorization.EnsureAccessAsync(notificationId)).MustHaveHappened();

            context.DeleteOnCommit(notification);
            await context.SaveChangesAsync();
        }
        public NotificationStatusChangeEventHandlerTests()
        {
            context = new TestIwsContext();
            var userContext = new TestUserContext(UserId);

            handler = new NotificationStatusChangeEventHandler(context, userContext);

            context.Users.Add(UserFactory.Create(UserId, AnyString, AnyString, AnyString, AnyString));

            notificationAssessment = new NotificationAssessment(NotificationId);

            receivedEvent = new NotificationStatusChangeEvent(notificationAssessment,
                NotificationStatus.Submitted);
        }
Exemplo n.º 13
0
        public CompleteNotificationTests()
        {
            notificationAssessmentRepository = A.Fake <INotificationAssessmentRepository>();
            facilityRepository = A.Fake <IFacilityRepository>();
            notificationTransactionCalculator = A.Fake <INotificationTransactionCalculator>();

            completeNotification = new CompleteNotification(notificationAssessmentRepository, facilityRepository,
                                                            notificationTransactionCalculator);

            notificationAssessment = new NotificationAssessment(notificationId);

            A.CallTo(() => notificationAssessmentRepository.GetByNotificationId(notificationId))
            .Returns(notificationAssessment);
        }
        public CompleteNotificationTests()
        {
            notificationAssessmentRepository = A.Fake<INotificationAssessmentRepository>();
            facilityRepository = A.Fake<IFacilityRepository>();
            notificationTransactionCalculator = A.Fake<INotificationTransactionCalculator>();

            completeNotification = new CompleteNotification(notificationAssessmentRepository, facilityRepository,
                notificationTransactionCalculator);

            notificationAssessment = new NotificationAssessment(notificationId);

            A.CallTo(() => notificationAssessmentRepository.GetByNotificationId(notificationId))
                .Returns(notificationAssessment);
        }
Exemplo n.º 15
0
        public NotificationStatusChangeEventHandlerTests()
        {
            context = new TestIwsContext();
            var userContext = new TestUserContext(UserId);

            handler = new NotificationStatusChangeEventHandler(context, userContext);

            context.Users.Add(UserFactory.Create(UserId, AnyString, AnyString, AnyString, AnyString));

            notificationAssessment = new NotificationAssessment(NotificationId);

            receivedEvent = new NotificationStatusChangeEvent(notificationAssessment,
                                                              NotificationStatus.Submitted);
        }
Exemplo n.º 16
0
        public SetCommencedDateHandlerTests()
        {
            context = new TestIwsContext();
            var assessment = new NotificationAssessment(notificationId);

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

            ObjectInstantiator <NotificationDates> .SetProperty(x => x.PaymentReceivedDate, receivedDate, assessment.Dates);

            context.NotificationAssessments.Add(assessment);

            message = new SetCommencedDate(notificationId, commencementDate, "Officer");
            handler = new SetCommencedDateHandler(context);
        }
        public SubmitNotificationHandlerTests()
        {
            context = new TestIwsContext();
            progressService = A.Fake<INotificationProgressService>();

            var assessment = new NotificationAssessment(notificationId);

            var repo = A.Fake<INotificationAssessmentRepository>();
            A.CallTo(() => repo.GetByNotificationId(notificationId)).Returns(assessment);

            context.NotificationAssessments.Add(assessment);
            A.CallTo(() => progressService.IsComplete(notificationId)).Returns(true);

            handler = new SubmitNotificationHandler(context, progressService, repo);
            message = new SubmitNotification(notificationId);
        }
Exemplo n.º 18
0
        public SubmitNotificationHandlerTests()
        {
            context         = new TestIwsContext();
            progressService = A.Fake <INotificationProgressService>();

            var assessment = new NotificationAssessment(notificationId);

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

            A.CallTo(() => repo.GetByNotificationId(notificationId)).Returns(assessment);

            context.NotificationAssessments.Add(assessment);
            A.CallTo(() => progressService.IsComplete(notificationId)).Returns(true);

            handler = new SubmitNotificationHandler(context, progressService, repo);
            message = new SubmitNotification(notificationId);
        }
        public async Task FGDecisionMade_ReturnsFalse(FinancialGuaranteeStatus status)
        {
            var assessment = new NotificationAssessment(NotificationId);

            ObjectInstantiator <NotificationAssessment> .SetProperty(x => x.Status, NotificationStatus.Consented, assessment);

            var financialGuaranteeCollection = new FinancialGuaranteeCollection(NotificationId);
            var financialGuarantee           = financialGuaranteeCollection.AddFinancialGuarantee(new DateTime(2015, 1, 1));

            ObjectInstantiator <FinancialGuarantee> .SetProperty(x => x.Status, status, financialGuarantee);

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

            var result = await service.Calculate(NotificationId);

            Assert.False(result);
        }
Exemplo n.º 20
0
        public async Task GetNotificationShipmentInfoByIdChecksAuthorization()
        {
            var notification = NotificationApplicationFactory.Create(userId, NotificationType.Recovery,
                                                                     UKCompetentAuthority.England, 20181);

            context.NotificationApplications.Add(notification);
            context.SaveChanges();

            var notificationId = notification.Id;

            var shipmentsInfo = new ShipmentInfo(notificationId, new ShipmentPeriod(DateTime.Now, DateTime.Now.AddDays(10), true), 10, new ShipmentQuantity(1.0m, ShipmentQuantityUnits.Tonnes));
            var assessment    = new NotificationAssessment(notificationId);

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

            var facilityCollection = new FacilityCollection(notificationId);

            facilityCollection.AddFacility(ObjectFactory.CreateEmptyProducerBusiness(),
                                           ObjectFactory.CreateDefaultAddress(), ObjectFactory.CreateEmptyContact());

            context.ShipmentInfos.Add(shipmentsInfo);
            context.NotificationAssessments.Add(assessment);
            context.Facilities.Add(facilityCollection);
            context.SaveChanges();

            var repository = new ShipmentInfoRepository(context,
                                                        notificationApplicationAuthorization);

            await repository.GetByNotificationId(notificationId);

            await repository.GetIntendedShipmentDataByNotificationId(notificationId);

            A.CallTo(() => notificationApplicationAuthorization.EnsureAccessAsync(notificationId)).MustHaveHappened(Repeated.Exactly.Times(2));

            context.DeleteOnCommit(shipmentsInfo);
            context.DeleteOnCommit(assessment);
            context.DeleteOnCommit(facilityCollection);
            await context.SaveChangesAsync();

            context.DeleteOnCommit(notification);
            await context.SaveChangesAsync();
        }
Exemplo n.º 21
0
 public static NotificationApplicationOverview Load(NotificationApplication notification,
                                                    NotificationAssessment assessment,
                                                    WasteRecovery.WasteRecovery wasteRecovery,
                                                    WasteDisposal wasteDisposal,
                                                    Exporter.Exporter exporter,
                                                    Importer.Importer importer,
                                                    int charge,
                                                    NotificationApplicationCompletionProgress progress)
 {
     return(new NotificationApplicationOverview
     {
         Exporter = exporter,
         Importer = importer,
         Notification = notification,
         NotificationAssessment = assessment,
         WasteRecovery = wasteRecovery,
         WasteDisposal = wasteDisposal,
         Charge = charge,
         Progress = progress
     });
 }
 public static NotificationApplicationOverview Load(NotificationApplication notification,
     NotificationAssessment assessment,
     WasteRecovery.WasteRecovery wasteRecovery,
     WasteDisposal wasteDisposal,
     Exporter.Exporter exporter,
     Importer.Importer importer,
     int charge,
     NotificationApplicationCompletionProgress progress)
 {
     return new NotificationApplicationOverview
     {
         Exporter = exporter,
         Importer = importer,
         Notification = notification,
         NotificationAssessment = assessment,
         WasteRecovery = wasteRecovery,
         WasteDisposal = wasteDisposal,
         Charge = charge,
         Progress = progress
     };
 }
Exemplo n.º 23
0
        public DecisionRequiredByTests()
        {
            var applicationId      = new Guid();
            var userId             = new Guid();
            var notificationType   = NotificationType.Recovery;
            var competentAuthority = UKCompetentAuthority.England;
            var notificationNumber = 1;

            decisionRequiredByCalculator = A.Fake <IDecisionRequiredByCalculator>();
            facilityRepository           = A.Fake <IFacilityRepository>();
            assessment  = new NotificationAssessment(applicationId);
            application = new NotificationApplication(userId, notificationType, competentAuthority, notificationNumber);

            decisionRequiredBy = new DecisionRequiredBy(decisionRequiredByCalculator, facilityRepository);

            decisionRequiredByDateWhenPopulatedInDB    = new DateTime(2019, 1, 1);
            decisionRequiredByDateWhenNotPopulatedInDB = null;
            acknowledgedDateWhenHasValue   = new DateTime(2019, 2, 2);
            acknowledgedDateWhenHasNoValue = null;
            decisionRequiredByDateWhenAcknowledgeDateHasNoValue = null;
            decisionRequiredByDateWhenCalculated = new DateTime(2019, 3, 3);
        }
Exemplo n.º 24
0
 private static void SetNotificationApplicationIdOnAssessment(NotificationAssessment assessment, Guid notificationId)
 {
     typeof(NotificationAssessment).GetProperty("NotificationApplicationId").SetValue(assessment, notificationId, null);
 }
 public NotificationAssessmentEditableTests()
 {
     notificationId = new Guid("C4C62654-048C-45A2-BF7F-9837EFCF328F");
     notificationAssessment = new NotificationAssessment(notificationId);
 }
Exemplo n.º 26
0
 public NotificationAssessmentEditableTests()
 {
     notificationId         = new Guid("C4C62654-048C-45A2-BF7F-9837EFCF328F");
     notificationAssessment = new NotificationAssessment(notificationId);
 }