public void UsageCount() { var observers = new ObserverSet <DummyObserver>(); var dummyA = new DummyObserver(); var dummyB = new DummyObserver(); observers.Add(dummyA); observers.Use(d => d.UsedCount++); Assert.AreEqual(1, dummyA.UsedCount); observers.Add(dummyB); observers.Use(d => d.UsedCount++); Assert.AreEqual(2, dummyA.UsedCount); Assert.AreEqual(1, dummyB.UsedCount); observers.Remove(dummyA); observers.Use(d => d.UsedCount++); Assert.AreEqual(2, dummyA.UsedCount); Assert.AreEqual(2, dummyB.UsedCount); }
public void BasicUsage() { var observers = new ObserverSet <DummyObserver>(); var dummy = new DummyObserver(); var weakDummy = new DummyObserver(); observers.Add(dummy); observers.AddWeak(weakDummy); observers.Use(d => d.Used = true); Assert.True(dummy.Used); Assert.True(weakDummy.Used); }
public override void GlobalContext() { base.GlobalContext(); _simulation = DomainFactoryForSpecs.CreateDefaultSimulation(); _moleculeBuildingBlock = new MoleculeBuildingBlock(); var compoundProperties = _simulation.CompoundPropertiesList.First(); _compoundName = compoundProperties.Compound.Name; _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = _compoundName, QuantityType = QuantityType.Drug }); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = "Enzyme", QuantityType = QuantityType.Enzyme }); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = "Metabolite", QuantityType = QuantityType.Metabolite }); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = "Protein", QuantityType = QuantityType.OtherProtein }); var specificBindingSelection = new ProcessSelection { CompoundName = _compoundName, MoleculeName = "Protein", ProcessName = "Specific Binding" }; var metabolizationSelection = new EnzymaticProcessSelection { CompoundName = _compoundName, MoleculeName = "Protein", ProcessName = "Metabolism" }; _complexProductName = specificBindingSelection.ProductName(CoreConstants.Molecule.Complex); _metaboliteProductName = metabolizationSelection.ProductName(CoreConstants.Molecule.Metabolite); _moleculeBuildingBlock.Add(new MoleculeBuilder { Name = _complexProductName, QuantityType = QuantityType.Complex }); compoundProperties.Processes.SpecificBindingSelection.AddPartialProcessSelection(specificBindingSelection); compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(metabolizationSelection); var observerSet = new ObserverSet(); var observerSetBuildingBlock = new UsedBuildingBlock("OBS_ID", PKSimBuildingBlockType.ObserverSet) { BuildingBlock = observerSet }; _observer = new AmountObserverBuilder().WithName("Test"); observerSet.Add(_observer); _simulation.AddUsedBuildingBlock(observerSetBuildingBlock); }
/// <summary> /// Adds a subsystem observer. /// </summary> /// <param name="observer">The observer to add.</param> /// <returns>The observer was successfully added.</returns> /// <remarks>The observer will be immediately receive registration callbacks if the subsystem is already active.</remarks> public static bool Register(IObserver <T> observer) => observers.Add(observer);