public StateOfImportValidatorTests()
        {
            var countryRepo   = A.Fake <ICountryRepository>();
            var caRepo        = A.Fake <ICompetentAuthorityRepository>();
            var exitPointRepo = A.Fake <IEntryOrExitPointRepository>();

            var uk   = CountryFactory.Create(ukId, "United Kingdom");
            var ukCa = CompetentAuthorityFactory.Create(ukCaId, uk);

            var france   = CountryFactory.Create(Guid.NewGuid(), "France");
            var franceCa = CompetentAuthorityFactory.Create(nonUkCaId, france);

            A.CallTo(() => countryRepo.GetUnitedKingdomId()).Returns(ukId);

            A.CallTo(() => caRepo.GetById(ukCaId)).Returns(ukCa);
            A.CallTo(() => caRepo.GetById(nonUkCaId)).Returns(franceCa);

            var dover  = EntryOrExitPointFactory.Create(ukEntryPointId, uk);
            var calais = EntryOrExitPointFactory.Create(nonUkEntryPointId, france);

            A.CallTo(() => exitPointRepo.GetById(ukEntryPointId)).Returns(dover);
            A.CallTo(() => exitPointRepo.GetById(nonUkEntryPointId)).Returns(calais);

            validator = new StateOfImportValidator(countryRepo, caRepo, exitPointRepo);
        }
        public StateOfImportValidatorTests()
        {
            var countryRepo = A.Fake<ICountryRepository>();
            var caRepo = A.Fake<ICompetentAuthorityRepository>();
            var exitPointRepo = A.Fake<IEntryOrExitPointRepository>();

            var uk = CountryFactory.Create(ukId, "United Kingdom");
            var ukCa = CompetentAuthorityFactory.Create(ukCaId, uk);

            var france = CountryFactory.Create(Guid.NewGuid(), "France");
            var franceCa = CompetentAuthorityFactory.Create(nonUkCaId, france);

            A.CallTo(() => countryRepo.GetUnitedKingdomId()).Returns(ukId);

            A.CallTo(() => caRepo.GetById(ukCaId)).Returns(ukCa);
            A.CallTo(() => caRepo.GetById(nonUkCaId)).Returns(franceCa);

            var dover = EntryOrExitPointFactory.Create(ukEntryPointId, uk);
            var calais = EntryOrExitPointFactory.Create(nonUkEntryPointId, france);

            A.CallTo(() => exitPointRepo.GetById(ukEntryPointId)).Returns(dover);
            A.CallTo(() => exitPointRepo.GetById(nonUkEntryPointId)).Returns(calais);

            validator = new StateOfImportValidator(countryRepo, caRepo, exitPointRepo);
        }
        public ImportNotificationValidatorTests()
        {
            var countryRepository            = A.Fake <Domain.ICountryRepository>();
            var addressValidator             = new AddressValidator(countryRepository);
            var contactValidator             = A.Fake <ContactValidator>();
            var exporterValidator            = new ExporterValidator(addressValidator, contactValidator);
            var facilityValidator            = A.Fake <FacilityValidator>();
            var facilitiesValidator          = new FacilityCollectionValidator(facilityValidator);
            var importerValidator            = new ImporterValidator(addressValidator, contactValidator);
            var importRepository             = A.Fake <Domain.ImportNotification.IImportNotificationRepository>();
            var preconsentedValidator        = new PreconsentedValidator(importRepository);
            var producerValidator            = new ProducerValidator(addressValidator, contactValidator);
            var draftImportRepository        = A.Fake <DataAccess.Draft.IDraftImportNotificationRepository>();
            var shipmentValidator            = new ShipmentValidator(draftImportRepository);
            var entryOrExitPointRepository   = A.Fake <Domain.TransportRoute.IEntryOrExitPointRepository>();
            var competentAuthorityRepository = A.Fake <Domain.ICompetentAuthorityRepository>();
            var stateOfExportValidator       = new StateOfExportValidator(entryOrExitPointRepository, competentAuthorityRepository);
            var stateOfImportValidator       = new StateOfImportValidator(countryRepository, competentAuthorityRepository, entryOrExitPointRepository);
            var transitStateValidator        = new TransitStateValidator(entryOrExitPointRepository, competentAuthorityRepository);
            var transitStatesValidator       = new TransitStateCollectionValidator(transitStateValidator);
            var wasteOperationValidator      = new WasteOperationValidator();
            var wasteTypeValidator           = new WasteTypeValidator();
            var chemicalCompositionValidator = new ChemicalCompositionValidator();

            validator = new ImportNotificationValidator(exporterValidator,
                                                        facilitiesValidator,
                                                        importerValidator,
                                                        preconsentedValidator,
                                                        producerValidator,
                                                        shipmentValidator,
                                                        stateOfExportValidator,
                                                        stateOfImportValidator,
                                                        transitStatesValidator,
                                                        wasteOperationValidator,
                                                        wasteTypeValidator,
                                                        chemicalCompositionValidator);
        }
 public ImportNotificationValidatorTests()
 {
     var countryRepository = A.Fake<Domain.ICountryRepository>();
     var addressValidator = new AddressValidator(countryRepository);
     var contactValidator = A.Fake<ContactValidator>();
     var exporterValidator = new ExporterValidator(addressValidator, contactValidator);
     var facilityValidator = A.Fake<FacilityValidator>();
     var facilitiesValidator = new FacilityCollectionValidator(facilityValidator);
     var importerValidator = new ImporterValidator(addressValidator, contactValidator);
     var importRepository = A.Fake<Domain.ImportNotification.IImportNotificationRepository>();
     var preconsentedValidator = new PreconsentedValidator(importRepository);
     var producerValidator = new ProducerValidator(addressValidator, contactValidator);
     var draftImportRepository = A.Fake<DataAccess.Draft.IDraftImportNotificationRepository>();
     var shipmentValidator = new ShipmentValidator(draftImportRepository);
     var entryOrExitPointRepository = A.Fake<Domain.TransportRoute.IEntryOrExitPointRepository>();
     var competentAuthorityRepository = A.Fake<Domain.ICompetentAuthorityRepository>();
     var stateOfExportValidator = new StateOfExportValidator(entryOrExitPointRepository, competentAuthorityRepository);
     var stateOfImportValidator = new StateOfImportValidator(countryRepository, competentAuthorityRepository, entryOrExitPointRepository);
     var transitStateValidator = new TransitStateValidator(entryOrExitPointRepository, competentAuthorityRepository);
     var transitStatesValidator = new TransitStateCollectionValidator(transitStateValidator);
     var wasteOperationValidator = new WasteOperationValidator();
     var wasteTypeValidator = new WasteTypeValidator();
     var chemicalCompositionValidator = new ChemicalCompositionValidator();
     validator = new ImportNotificationValidator(exporterValidator,
         facilitiesValidator,
         importerValidator,
         preconsentedValidator,
         producerValidator,
         shipmentValidator,
         stateOfExportValidator,
         stateOfImportValidator,
         transitStatesValidator,
         wasteOperationValidator,
         wasteTypeValidator,
         chemicalCompositionValidator);
 }