protected override async Task Context()
        {
            await base.Context();

            _expectedOutputPath             = Path.Combine(_qualificationConfiguration.OutputFolder, PROJECT_NAME);
            DirectoryHelper.DirectoryExists = s => string.Equals(s, _expectedOutputPath);
            DirectoryHelper.DeleteDirectory = (s, b) => _deletedDirectory = s;

            _simulationName = "S1";
            _simulation     = new Simulation {
                Name = _simulationName
            };
            _individualSimulation = new IndividualSimulation {
                Name = _simulationName
            };
            _input = new Input {
                Project = PROJECT_NAME, Name = _simulationName, SectionId = 2, Type = PKSimBuildingBlockType.Simulation, SectionLevel = 5
            };

            _expectedSimulationPath = Path.Combine(_expectedOutputPath, _simulationName);
            _simulationExport       = new SimulationMapping {
                Project = PROJECT_NAME, Simulation = _simulationName, Path = _expectedSimulationPath
            };
            _simulationExports = new[] { _simulationExport };
            A.CallTo(() => _exportSimulationRunner.ExportSimulationsIn(_project, A <ExportRunOptions> ._))
            .Invokes(x => _exportOptions = x.GetArgument <ExportRunOptions>(1))
            .Returns(_simulationExports);

            _observedData = DomainHelperForSpecs.ObservedData().WithName("OBS");
            _project.AddObservedData(_observedData);
            _projectSnapshot.Simulations     = new[] { _simulation };
            _expectedObservedDataXlsFullPath = Path.Combine(_qualificationConfiguration.ObservedDataFolder, $"{_observedData.Name}{Constants.Filter.XLSX_EXTENSION}");
            _expectedObservedDataCsvFullPath = Path.Combine(_qualificationConfiguration.ObservedDataFolder, $"{_observedData.Name}{Constants.Filter.CSV_EXTENSION}");

            _expectedInputFullPath = Path.Combine(_qualificationConfiguration.InputsFolder, PROJECT_NAME, PKSimBuildingBlockType.Simulation.ToString(), $"{_simulationName}{CoreConstants.Filter.MARKDOWN_EXTENSION}");

            A.CallTo(() => _jsonSerializer.Serialize(A <QualificationMapping> ._, _qualificationConfiguration.MappingFile))
            .Invokes(x => _mapping = x.GetArgument <QualificationMapping>(0));

            _project.AddBuildingBlock(_individualSimulation);
            _qualificationConfiguration.Inputs      = new[] { _input };
            _qualificationConfiguration.Simulations = new[] { _simulationName, };
            _runOptions.Run = true;
        }
        public async Task <SimulationMapping> ExportSimulation(Simulation simulation, ExportRunOptions exportRunOptions, PKSimProject project)
        {
            var projectName      = project.Name;
            var simulationName   = simulation.Name;
            var simulationFile   = FileHelper.RemoveIllegalCharactersFrom(simulationName);
            var simulationFolder = Path.Combine(exportRunOptions.OutputFolder, simulationFile);

            DirectoryHelper.CreateDirectory(simulationFolder);

            var simulationExport = new SimulationMapping
            {
                Project        = projectName,
                Path           = simulationFolder,
                Simulation     = simulationName,
                SimulationFile = simulationFile
            };

            var simulationRunOptions = new SimulationRunOptions();

            _lazyLoadTask.Load(simulation);
            _lazyLoadTask.LoadResults(simulation);

            var simulationExportOptions = new SimulationExportOptions
            {
                OutputFolder = simulationFolder,
                ExportMode   = exportRunOptions.ExportMode,
                ProjectName  = projectName,
            };

            if (exportRunOptions.RunSimulation)
            {
                await _simulationExporter.RunAndExport(simulation, simulationRunOptions, simulationExportOptions);
            }

            else
            {
                await _simulationExporter.Export(simulation, simulationExportOptions);
            }

            _logger.AddDebug($"Simulation '{simulationName}' exported to '{simulationFolder}'", projectName);
            return(simulationExport);
        }
 protected override async Task Because()
 {
     _export = await sut.ExportSimulation(_simulation1, _exportRunOptions, _project);
 }