public override void GlobalContext() { base.GlobalContext(); _compoundProcessRepo = IoC.Resolve <ICompoundProcessRepository>(); _interactionTask = IoC.Resolve <IInteractionTask>(); var cloner = IoC.Resolve <ICloneManager>(); var enzymeFactory = IoC.Resolve <IIndividualEnzymeFactory>(); var transporterFactory = IoC.Resolve <IIndividualTransporterFactory>(); var inhibitor = DomainFactoryForSpecs.CreateStandardCompound().WithName("Inhibitor"); var protocol2 = DomainFactoryForSpecs.CreateStandardIVBolusProtocol().WithName("IV2"); var allPartialProcesses = PartialProcesses.ToList(); foreach (var metaTemplate in allPartialProcesses) { var moleculeName = "Molecule_" + metaTemplate.Name; if (metaTemplate as EnzymaticProcess != null) { var individualProtein = enzymeFactory.CreateFor(_individual).WithName(moleculeName); _individual.AddMolecule(individualProtein.DowncastTo <IndividualEnzyme>().WithName(moleculeName)); } else { var individualProtein = transporterFactory.CreateFor(_individual).WithName(moleculeName); _individual.AddMolecule(individualProtein.DowncastTo <IndividualTransporter>().WithName(moleculeName)); } var process = cloner.Clone(metaTemplate).DowncastTo <PartialProcess>(); process.Name = "Process " + moleculeName; process.MoleculeName = moleculeName; _compound.AddProcess(process); var inhibitionTemplate = _compoundProcessRepo.ProcessByName <InteractionProcess>(InhibitionProcessName); var inhibitionProcess = cloner.Clone(inhibitionTemplate); inhibitionProcess.Name = "InhibitionProcess " + moleculeName; inhibitionProcess.MoleculeName = moleculeName; inhibitor.AddProcess(inhibitionProcess); } _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith( _individual, new[] { _compound, inhibitor }, new[] { _protocol, protocol2 }).DowncastTo <IndividualSimulation>(); foreach (var inhibitionProcess in inhibitor.AllProcesses <InteractionProcess>()) { var interactionSelection = new InteractionSelection { CompoundName = inhibitor.Name, MoleculeName = inhibitionProcess.MoleculeName, ProcessName = inhibitionProcess.Name }; _simulation.InteractionProperties.AddInteraction(interactionSelection); } DomainFactoryForSpecs.AddModelToSimulation(_simulation); }
protected void ValidateInteractionContainersTest() { _interactionTask.AllInteractionContainers(_simulation).Count().ShouldBeEqualTo(PartialProcesses.Count()); }