protected override void Context()
        {
            _view = A.Fake <ICreateSimulationView>();
            _subPresenterManager           = A.Fake <ISubPresenterItemManager <ISimulationItemPresenter> >();
            _buildConfigurationPresenter   = _subPresenterManager.CreateFake(SimulationItems.BuildConfiguration);
            _moleculeStartValuesPresenter  = _subPresenterManager.CreateFake(SimulationItems.MoleculeStartValues);
            _parameterStartValuesPresenter = _subPresenterManager.CreateFake(SimulationItems.ParameterStartValues);
            _finalActionPresenter          = _subPresenterManager.CreateFake(SimulationItems.FinalOptions);

            A.CallTo(() => _subPresenterManager.AllSubPresenters).Returns(new ISimulationItemPresenter[] { _buildConfigurationPresenter, _moleculeStartValuesPresenter, _parameterStartValuesPresenter, _finalActionPresenter });
            _context          = A.Fake <IMoBiContext>();
            _modelConstructor = A.Fake <IModelConstructor>();
            _dialogCreator    = A.Fake <IDialogCreator>();
            A.CallTo(() => _modelConstructor.CreateModelFrom(A <IBuildConfiguration> ._, A <string> ._)).Returns(A.Fake <CreationResult>());


            _validationVisitor = A.Fake <IDimensionValidator>();
            _userSettings      = A.Fake <IUserSettings>();
            _userSettings.CheckCircularReference = true;
            _simulationFactory         = A.Fake <ISimulationFactory>();
            _buildConfigurationFactory = A.Fake <IBuildConfigurationFactory>();
            _heavyWorkManager          = new HeavyWorkManagerForSpecs();
            _forbiddenNameRetriever    = A.Fake <IForbiddenNamesRetriever>();
            sut = new CreateSimulationPresenter(_view, _context, _modelConstructor, _validationVisitor,
                                                _simulationFactory, _buildConfigurationFactory, _heavyWorkManager, _subPresenterManager, _dialogCreator,
                                                _forbiddenNameRetriever, _userSettings);

            _simulation = A.Fake <IMoBiSimulation>();
            A.CallTo(() => _simulationFactory.Create()).Returns(_simulation);
            _buildConfiguration = createBuildConfiguration();
            A.CallTo(() => _simulation.MoBiBuildConfiguration).Returns(_buildConfiguration);
            A.CallTo(() => _moleculeStartValuesPresenter.StartValues).Returns(A.Fake <IMoleculeStartValuesBuildingBlock>().WithId(_useId));
            A.CallTo(() => _parameterStartValuesPresenter.StartValues).Returns(A.Fake <IParameterStartValuesBuildingBlock>().WithId(_useId));
        }
        private MoBiBuildConfiguration createBuildConfiguration()
        {
            var moBiBuildConfiguration = new MoBiBuildConfiguration();

            setBuildingBlockInfo(moBiBuildConfiguration.MoleculeStartValuesInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.MoleculesInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.ParameterStartValuesInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.PassiveTransportsInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.ReactionsInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.SimulationSettingsInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.SpatialStructureInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.ObserversInfo);
            setBuildingBlockInfo(moBiBuildConfiguration.EventGroupsInfo);
            return(moBiBuildConfiguration);
        }
Esempio n. 3
0
        private IMoBiBuildConfiguration createBuildConfiguration()
        {
            var moBiBuildConfiguration = new MoBiBuildConfiguration()
            {
                SpatialStructure     = _project.SpatialStructureCollection.First(),
                Molecules            = _project.MoleculeBlockCollection.First(),
                Reactions            = _project.ReactionBlockCollection.First(),
                PassiveTransports    = _project.PassiveTransportCollection.First(),
                Observers            = _project.ObserverBlockCollection.First(),
                EventGroups          = _project.EventBlockCollection.First(),
                MoleculeStartValues  = _project.MoleculeStartValueBlockCollection.First(),
                ParameterStartValues = _project.ParametersStartValueBlockCollection.First(),
                SimulationSettings   = _project.SimulationSettingsCollection.First()
            };

            _calculationMethodRepository.All().Each(moBiBuildConfiguration.AddCalculationMethod);
            moBiBuildConfiguration.ShowProgress   = false;
            moBiBuildConfiguration.ShouldValidate = true;
            return(moBiBuildConfiguration);
        }
        public IMoBiSimulation CloneSimulation(IMoBiSimulation simulationToClone)
        {
            var buildConfig = new MoBiBuildConfiguration
            {
                MoleculesInfo            = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.MoleculesInfo),
                ReactionsInfo            = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.ReactionsInfo),
                SpatialStructureInfo     = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.SpatialStructureInfo),
                PassiveTransportsInfo    = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.PassiveTransportsInfo),
                ObserversInfo            = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.ObserversInfo),
                EventGroupsInfo          = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.EventGroupsInfo),
                ParameterStartValuesInfo = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.ParameterStartValuesInfo),
                MoleculeStartValuesInfo  = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.MoleculeStartValuesInfo),
                SimulationSettingsInfo   = CloneBuidingBlockInfo(simulationToClone.MoBiBuildConfiguration.SimulationSettingsInfo)
            };

            var model      = _cloneManagerForModel.CloneModel(simulationToClone.Model);
            var simulation = _simulationFactory.CreateFrom(buildConfig, model);

            simulation.UpdatePropertiesFrom(simulationToClone, _cloneManagerForModel);
            return(simulation);
        }