protected override void Context() { _msvCreator = A.Fake <IMoleculeStartValuesCreator>(); A.CallTo(() => _msvCreator.CreateMoleculeStartValue(A <IObjectPath> .Ignored, A <string> .Ignored, A <IDimension> .Ignored, A <Unit> ._, A <ValueOrigin> ._)) .ReturnsLazily((IObjectPath path, string moleculeName, IDimension dimension) => new MoleculeStartValue { ContainerPath = path, Name = moleculeName, Dimension = dimension }); _concentrationDimension = new Dimension(new BaseDimensionRepresentation(), Constants.Dimension.MOLAR_CONCENTRATION, "mol/l"); _amountDimension = new Dimension(new BaseDimensionRepresentation(), Constants.Dimension.AMOUNT, "mol"); _amountDimension.AddUnit("mmol", 0.001, 0); _timeDimension = new Dimension(new BaseDimensionRepresentation(), Constants.Dimension.TIME, "s"); _timeDimension.Unit("s").Factor = 1.0 / 60; _dimensionFactory = A.Fake <IMoBiDimensionFactory>(); _startValuesBuildingBlock = A.Fake <IMoleculeStartValuesBuildingBlock>(); _reactionDimensionRetriever = A.Fake <IReactionDimensionRetriever>(); A.CallTo(() => _dimensionFactory.DimensionForUnit("mol")).Returns(_amountDimension); A.CallTo(() => _dimensionFactory.DimensionForUnit("mmol")).Returns(_amountDimension); A.CallTo(() => _dimensionFactory.DimensionForUnit("mol/l")).Returns(_concentrationDimension); A.CallTo(() => _dimensionFactory.DimensionForUnit("s")).Returns(_timeDimension); A.CallTo(() => _dimensionFactory.DimensionForUnit("")).Throws <Exception>(); A.CallTo(() => _dimensionFactory.Dimension(Constants.Dimension.AMOUNT)).Returns(_amountDimension); A.CallTo(() => _dimensionFactory.Dimension(Constants.Dimension.MOLAR_CONCENTRATION)).Returns(_concentrationDimension); A.CallTo(() => _reactionDimensionRetriever.SelectedDimensionMode).Returns(ReactionDimensionMode.AmountBased); sut = new DataTableToImportQuantityDTOMapperForMolecules(_dimensionFactory, _reactionDimensionRetriever); }
public IMoleculeStartValue MapFrom(ImportedQuantityDTO input) { var msv = _msvCreator.CreateMoleculeStartValue(input.ContainerPath, input.Name, input.Dimension, input.DisplayUnit); msv.StartValue = input.QuantityInBaseUnit; msv.DisplayUnit = input.DisplayUnit; msv.IsPresent = input.IsPresent; msv.NegativeValuesAllowed = input.NegativeValuesAllowed; if (input.IsQuantitySpecified) { msv.StartValue = input.QuantityInBaseUnit; } if (input.IsScaleDivisorSpecified) { msv.ScaleDivisor = input.ScaleDivisor; } return(msv); }
private IBuildConfiguration createBuildConfiguration() { var buildConfiguration = new BuildConfigurationForSpecs(); buildConfiguration.Molecules = getMolecules(); buildConfiguration.Reactions = getReactions(); buildConfiguration.SpatialStructure = getSpatialStructure(); buildConfiguration.PassiveTransports = new PassiveTransportBuildingBlock(); buildConfiguration.Observers = new ObserverBuildingBlock(); buildConfiguration.EventGroups = new EventGroupBuildingBlock(); buildConfiguration.SimulationSettings = createSimulationConfiguration(); buildConfiguration.MoleculeStartValues = _moleculeStartValuesCreator.CreateFrom(buildConfiguration.SpatialStructure, buildConfiguration.Molecules); var objectPathForContainerThatDoesNotExist = _objectPathFactory.CreateObjectPathFrom("TOTO", "TATA"); buildConfiguration.MoleculeStartValues.Add(_moleculeStartValuesCreator.CreateMoleculeStartValue(objectPathForContainerThatDoesNotExist, "A", _concentrationDimension)); buildConfiguration.ParameterStartValues = _parameterStartValuesCreator.CreateFrom(buildConfiguration.SpatialStructure, buildConfiguration.Molecules); setMoleculeStartValues(buildConfiguration.MoleculeStartValues); return(buildConfiguration); }