public ProviderStepParser(IProviderResultsRepository providerResultsRepository, ITestRunnerResiliencePolicies resiliencePolicies) { Guard.ArgumentNotNull(providerResultsRepository, nameof(providerResultsRepository)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderResultsRepository, nameof(providerResultsRepository)); _providerResultsRepository = providerResultsRepository; _providerResultsRepositoryPolicy = resiliencePolicies.ProviderResultsRepository; }
public StepParserFactory( ICodeMetadataGeneratorService codeMetadataGeneratorService, IProviderResultsRepository providerResultsRepository, ITestRunnerResiliencePolicies resiliencePolicies) { _codeMetadataGeneratorService = codeMetadataGeneratorService; _providerResultsRepository = providerResultsRepository; _resiliencePolicies = resiliencePolicies; }
public StepParserFactory( ICodeMetadataGeneratorService codeMetadataGeneratorService, IProviderResultsRepository providerResultsRepository, ITestRunnerResiliencePolicies resiliencePolicies) { Guard.ArgumentNotNull(codeMetadataGeneratorService, nameof(codeMetadataGeneratorService)); Guard.ArgumentNotNull(providerResultsRepository, nameof(providerResultsRepository)); Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies)); _codeMetadataGeneratorService = codeMetadataGeneratorService; _providerResultsRepository = providerResultsRepository; _resiliencePolicies = resiliencePolicies; }
public BuildProjectsService( ILogger logger, ITelemetry telemetry, IProviderResultsRepository providerResultsRepository, ISpecificationRepository specificationsRepository, ICacheProvider cacheProvider, ICalculationsRepository calculationsRepository, IFeatureToggle featureToggle, IJobsApiClient jobsApiClient, ICalcsResiliencePolicies resiliencePolicies, EngineSettings engineSettings, ISourceCodeService sourceCodeService, IDatasetRepository datasetRepository, IBuildProjectsRepository buildProjectsRepository) { Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(telemetry, nameof(telemetry)); Guard.ArgumentNotNull(providerResultsRepository, nameof(providerResultsRepository)); Guard.ArgumentNotNull(specificationsRepository, nameof(specificationsRepository)); Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider)); Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository)); Guard.ArgumentNotNull(featureToggle, nameof(featureToggle)); Guard.ArgumentNotNull(jobsApiClient, nameof(jobsApiClient)); Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies)); Guard.ArgumentNotNull(engineSettings, nameof(engineSettings)); Guard.ArgumentNotNull(sourceCodeService, nameof(sourceCodeService)); Guard.ArgumentNotNull(datasetRepository, nameof(datasetRepository)); Guard.ArgumentNotNull(buildProjectsRepository, nameof(buildProjectsRepository)); _logger = logger; _telemetry = telemetry; _providerResultsRepository = providerResultsRepository; _specificationsRepository = specificationsRepository; _cacheProvider = cacheProvider; _calculationsRepository = calculationsRepository; _featureToggle = featureToggle; _jobsApiClient = jobsApiClient; _jobsApiClientPolicy = resiliencePolicies.JobsApiClient; _engineSettings = engineSettings; _sourceCodeService = sourceCodeService; _datasetRepository = datasetRepository; _datasetRepositoryPolicy = resiliencePolicies.DatasetsRepository; _buildProjectsRepository = buildProjectsRepository; _buildProjectsRepositoryPolicy = resiliencePolicies.BuildProjectRepositoryPolicy; }
public CalculationEngineService( ILogger logger, ICalculationEngine calculationEngine, ICacheProvider cacheProvider, IMessengerService messengerService, IProviderSourceDatasetsRepository providerSourceDatasetsRepository, ITelemetry telemetry, IProviderResultsRepository providerResultsRepository, ICalculationsRepository calculationsRepository, EngineSettings engineSettings, ICalculatorResiliencePolicies resiliencePolicies, IValidator <ICalculatorResiliencePolicies> calculatorResiliencePoliciesValidator, IDatasetAggregationsRepository datasetAggregationsRepository, IFeatureToggle featureToggle, IJobsApiClient jobsApiClient) { _calculatorResiliencePoliciesValidator = calculatorResiliencePoliciesValidator; CalculationEngineServiceValidator.ValidateConstruction(_calculatorResiliencePoliciesValidator, engineSettings, resiliencePolicies, calculationsRepository); _logger = logger; _calculationEngine = calculationEngine; _cacheProvider = cacheProvider; _messengerService = messengerService; _providerSourceDatasetsRepository = providerSourceDatasetsRepository; _telemetry = telemetry; _providerResultsRepository = providerResultsRepository; _calculationsRepository = calculationsRepository; _engineSettings = engineSettings; _cacheProviderPolicy = resiliencePolicies.CacheProvider; _messengerServicePolicy = resiliencePolicies.Messenger; _providerSourceDatasetsRepositoryPolicy = resiliencePolicies.ProviderSourceDatasetsRepository; _providerResultsRepositoryPolicy = resiliencePolicies.ProviderResultsRepository; _calculationsRepositoryPolicy = resiliencePolicies.CalculationsRepository; _datasetAggregationsRepository = datasetAggregationsRepository; _featureToggle = featureToggle; _jobsApiClient = jobsApiClient; _jobsApiClientPolicy = resiliencePolicies.JobsApiClient; }
public async Task Execute_WhenFieldNameCaseIsDifferent_ThenTestIsSuccessfullyExecuted() { // Arrange string dataSetName = "Test Dataset"; string fieldName = "URN"; string calcName = "Test Calc"; string gherkin = $"Given the dataset '{dataSetName}' field '{fieldName.ToLower()}' is equal to '100050'\n\nThen the result for '{calcName}' is greater than '12' "; ICodeMetadataGeneratorService codeMetadataGeneratorService = CreateCodeMetadataGeneratorService(); codeMetadataGeneratorService .GetTypeInformation(Arg.Any <byte[]>()) .Returns(new List <TypeInformation> { new TypeInformation { Type = "Calculations", Methods = new List <MethodInformation> { new MethodInformation { FriendlyName = calcName } } }, new TypeInformation { Type = "Datasets", Properties = new List <PropertyInformation> { new PropertyInformation { FriendlyName = dataSetName, Type = "DSType" } } }, new TypeInformation { Type = "DSType", Properties = new List <PropertyInformation> { new PropertyInformation { FriendlyName = fieldName, Type = "String" } } } }); IProviderResultsRepository providerResultsRepository = CreateProviderResultsRepository(); ITestRunnerResiliencePolicies resiliencePolicies = CreateResiliencePolicies(); IStepParserFactory stepParserFactory = new StepParserFactory(codeMetadataGeneratorService, providerResultsRepository, resiliencePolicies); ICalculationsRepository calculationsRepository = CreateCalculationsRepository(); calculationsRepository .GetAssemblyBySpecificationId(Arg.Is("spec1")) .Returns(new byte[1]); ILogger logger = CreateLogger(); GherkinParser gherkinParser = new GherkinParser(stepParserFactory, calculationsRepository, logger); ICacheProvider cacheProvider = CreateCacheProvider(); GherkinExecutor gherkinExecutor = CreateGherkinExecutor(gherkinParser, cacheProvider); ProviderResult providerResult = new ProviderResult { Provider = new ProviderSummary { Id = "prov1" }, CalculationResults = new List <CalculationResult> { new CalculationResult { Calculation = new Common.Models.Reference { Name = calcName }, Value = 14 } } }; IEnumerable <ProviderSourceDataset> datasets = new List <ProviderSourceDataset> { new ProviderSourceDataset { DataRelationship = new Common.Models.Reference { Name = dataSetName }, Current = new ProviderSourceDatasetVersion { Rows = new List <Dictionary <string, object> > { new Dictionary <string, object> { { fieldName, 100050 } } } } } }; IEnumerable <TestScenario> testScenarios = new List <TestScenario> { new TestScenario { Id = "ts1", Name = "Test Scenario 1", SpecificationId = "spec1", Current = new TestScenarioVersion { Gherkin = gherkin } } }; BuildProject buildProject = new BuildProject { Build = new Build() }; // Act IEnumerable <ScenarioResult> scenarioResults = await gherkinExecutor.Execute(providerResult, datasets, testScenarios, buildProject); // Assert scenarioResults .Should() .HaveCount(1); scenarioResults .First().HasErrors .Should() .BeFalse("there should be no errors"); scenarioResults .First().StepsExecuted .Should() .Be(scenarioResults.First().TotalSteps, "all steps should be executed"); }
public ProviderStepParser(IProviderResultsRepository providerResultsRepository, ITestRunnerResiliencePolicies resiliencePolicies) { _providerResultsRepository = providerResultsRepository; _providerResultsRepositoryPolicy = resiliencePolicies.ProviderResultsRepository; }
public CalculationEngineService( ILogger logger, ICalculationEngine calculationEngine, ICacheProvider cacheProvider, IMessengerService messengerService, IProviderSourceDatasetsRepository providerSourceDatasetsRepository, ITelemetry telemetry, IProviderResultsRepository providerResultsRepository, ICalculationsRepository calculationsRepository, EngineSettings engineSettings, ICalculatorResiliencePolicies resiliencePolicies, IJobManagement jobManagement, ISpecificationsApiClient specificationsApiClient, IResultsApiClient resultsApiClient, IValidator <ICalculatorResiliencePolicies> calculatorResiliencePoliciesValidator, ICalculationEngineServiceValidator calculationEngineServiceValidator, ICalculationAggregationService calculationAggregationService, IAssemblyService assemblyService) : base(jobManagement, logger) { Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(calculationEngine, nameof(calculationEngine)); Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider)); Guard.ArgumentNotNull(messengerService, nameof(messengerService)); Guard.ArgumentNotNull(providerSourceDatasetsRepository, nameof(providerSourceDatasetsRepository)); Guard.ArgumentNotNull(telemetry, nameof(telemetry)); Guard.ArgumentNotNull(providerResultsRepository, nameof(providerResultsRepository)); Guard.ArgumentNotNull(calculationsRepository, nameof(calculationsRepository)); Guard.ArgumentNotNull(engineSettings, nameof(engineSettings)); Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient)); Guard.ArgumentNotNull(resiliencePolicies?.CacheProvider, nameof(resiliencePolicies.CacheProvider)); Guard.ArgumentNotNull(resiliencePolicies?.Messenger, nameof(resiliencePolicies.Messenger)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderSourceDatasetsRepository, nameof(resiliencePolicies.ProviderSourceDatasetsRepository)); Guard.ArgumentNotNull(resiliencePolicies?.CalculationResultsRepository, nameof(resiliencePolicies.CalculationResultsRepository)); Guard.ArgumentNotNull(resiliencePolicies?.CalculationsApiClient, nameof(resiliencePolicies.CalculationsApiClient)); Guard.ArgumentNotNull(resiliencePolicies?.ResultsApiClient, nameof(resiliencePolicies.ResultsApiClient)); Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient)); Guard.ArgumentNotNull(calculatorResiliencePoliciesValidator, nameof(calculatorResiliencePoliciesValidator)); Guard.ArgumentNotNull(calculationEngineServiceValidator, nameof(calculationEngineServiceValidator)); Guard.ArgumentNotNull(resultsApiClient, nameof(resultsApiClient)); Guard.ArgumentNotNull(calculationAggregationService, nameof(calculationAggregationService)); Guard.ArgumentNotNull(assemblyService, nameof(assemblyService)); _calculationEngineServiceValidator = calculationEngineServiceValidator; _logger = logger; _calculationEngine = calculationEngine; _cacheProvider = cacheProvider; _messengerService = messengerService; _providerSourceDatasetsRepository = providerSourceDatasetsRepository; _telemetry = telemetry; _providerResultsRepository = providerResultsRepository; _calculationsRepository = calculationsRepository; _engineSettings = engineSettings; _cacheProviderPolicy = resiliencePolicies.CacheProvider; _messengerServicePolicy = resiliencePolicies.Messenger; _providerSourceDatasetsRepositoryPolicy = resiliencePolicies.ProviderSourceDatasetsRepository; _providerResultsRepositoryPolicy = resiliencePolicies.CalculationResultsRepository; _calculationsApiClientPolicy = resiliencePolicies.CalculationsApiClient; _specificationsApiClient = specificationsApiClient; _specificationsApiPolicy = resiliencePolicies.SpecificationsApiClient; _resultsApiClientPolicy = resiliencePolicies.ResultsApiClient; _resultsApiClient = resultsApiClient; _calculationAggregationService = calculationAggregationService; _assemblyService = assemblyService; _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator(); }