protected override void Context()
        {
            base.Context();
            _obs1 = A.Fake <IAmountObserverBuilder>();
            _obs1.MoleculeList.ForAll = true;
            _obs2 = A.Fake <IAmountObserverBuilder>();
            _obs2.MoleculeList.ForAll = false;
            A.CallTo(() => _obs2.MoleculeList.MoleculeNames).Returns(new List <string> {
                _molecule2
            });
            _observerBuildingBlock.Add(_obs1);
            _observerBuildingBlock.Add(_obs2);
            A.CallTo(() => _observerMapper.MapFrom(_obs1, _buildConfiguration)).ReturnsLazily(x => A.Fake <IObserver>().WithName("obs1"));
            A.CallTo(() => _observerMapper.MapFrom(_obs2, _buildConfiguration)).ReturnsLazily(x => A.Fake <IObserver>().WithName("obs2"));
            _molecule1Container1 = new MoleculeAmount().WithName(_molecule1).WithQuantityType(QuantityType.Drug);
            _molecule2Container1 = new MoleculeAmount().WithName(_molecule2).WithQuantityType(QuantityType.Enzyme);
            _molecule1Container2 = new MoleculeAmount().WithName(_molecule1).WithQuantityType(QuantityType.Drug);
            _molecule2Container2 = new MoleculeAmount().WithName(_molecule2).WithQuantityType(QuantityType.Enzyme);
            var container1 = new Container().WithName("Container1");

            container1.AddTag("OBS");
            container1.AddTag("OBS1");
            var container2 = new Container().WithName("Container2");

            container2.AddTag("OBS");
            container1.Add(_molecule1Container1);
            container1.Add(_molecule2Container1);
            container2.Add(_molecule1Container2);
            container2.Add(_molecule2Container2);
            _rootContainer.Add(container1);
            _rootContainer.Add(container2);
            _obs1.ContainerCriteria = Create.Criteria(x => x.With("OBS"));
            _obs2.ContainerCriteria = Create.Criteria(x => x.With("OBS1"));
        }
        protected override void Context()
        {
            _observerBuilder         = A.Fake <IAmountObserverBuilder>();
            _editObserverBuilderView = A.Fake <IEditObserverBuilderView>();
            _buildingBlock           = new ObserverBuildingBlock();
            _editFormulaPresenter    = A.Fake <IEditFormulaPresenter>();
            _commandCollector        = A.Fake <ICommandCollector>();
            _observerMapper          = A.Fake <IObserverBuilderToDTOObserverBuilderMapper>();

            sut = new EditAmountObserverBuilderPresenter(
                _editObserverBuilderView,
                A.Fake <IMoBiContext>(),
                A.Fake <IEditTaskFor <IAmountObserverBuilder> >(),
                _observerMapper,
                A.Fake <IViewItemContextMenuFactory>(),
                _editFormulaPresenter,
                A.Fake <ISelectReferenceAtAmountObserverPresenter>(),
                A.Fake <IMoleculeDependentBuilderPresenter>(),
                A.Fake <IDescriptorConditionListPresenter <IObserverBuilder> >()
                );


            sut.InitializeWith(_commandCollector);
            sut.BuildingBlock = _buildingBlock;
            sut.Edit(_observerBuilder);
        }
        public void TestSerializationWithoutFormula()
        {
            AmountObserverBuilder x1 = CreateObject <AmountObserverBuilder>();

            x1.ForAll            = true;
            x1.ContainerCriteria = Create.Criteria(x => x.With("Organ").And.Not("Compartment").And.InContainer("Liver").And.NotInContainer("Cell"));
            x1.Dimension         = DimensionLength;
            IAmountObserverBuilder x2 = SerializeAndDeserialize(x1);

            AssertForSpecs.AreEqualAmountObserverBuilder(x2, x1);
        }
Пример #4
0
        public void TestSerializationWithoutFormula()
        {
            AmountObserverBuilder x1 = CreateObject <AmountObserverBuilder>();

            x1.ForAll            = true;
            x1.ContainerCriteria = new DescriptorCriteria();
            x1.ContainerCriteria.Add(new MatchTagCondition("Organ"));
            x1.ContainerCriteria.Add(new NotMatchTagCondition("Organ"));
            x1.Dimension = DimensionLength;
            IAmountObserverBuilder x2 = SerializeAndDeserialize(x1);

            AssertForSpecs.AreEqualAmountObserverBuilder(x2, x1);
        }
Пример #5
0
        /// <summary>
        ///    Creates amount specific observers-stored under molecules amount
        ///    in the spatial structure of the model.
        ///    Typical example: "Concentration"-Observer (M/V)
        /// </summary>
        private void createAmountObserver(IAmountObserverBuilder observerBuilder, IModel model, IEnumerable <IMoleculeBuilder> presentMolecules)
        {
            var moleculeNamesForObserver = moleculeBuildersValidFor(observerBuilder.MoleculeList, presentMolecules)
                                           .Select(x => x.Name).ToList();

            foreach (var container in _allContainers.Where(observerBuilder.ContainerCriteria.IsSatisfiedBy).ToList())
            {
                var amountsForObserver = container.GetChildren <IMoleculeAmount>(ma => moleculeNamesForObserver.Contains(ma.Name));

                foreach (var amount in amountsForObserver)
                {
                    var observer = addObserverInContainer(observerBuilder, amount, amount.QuantityType);
                    _keywordReplacerTask.ReplaceIn(observer, model.Root, amount.Name);
                }
            }
        }
        protected override void Context()
        {
            _interactionTaskContext = A.Fake <IInteractionTaskContext>();
            _context        = A.Fake <IMoBiContext>();
            _project        = A.Fake <IMoBiProject>();
            _amountObserver = A.Fake <IAmountObserverBuilder>();
            _amountObserverBuilderWithForbiddenName = new AmountObserverBuilder {
                Name = "forbidden name"
            };
            _buildingBlock = new ObserverBuildingBlock {
                _amountObserverBuilderWithForbiddenName, _amountObserver
            };
            _interactionTask = A.Fake <IInteractionTask>();

            A.CallTo(() => _context.CurrentProject).Returns(_project);
            A.CallTo(() => _interactionTaskContext.Context).Returns(_context);
            A.CallTo(() => _project.ObserverBlockCollection).Returns(new[] { _buildingBlock });
            A.CallTo(() => _interactionTaskContext.InteractionTask).Returns(_interactionTask);

            sut = new EditTasksForAmountObserverBuilder(_interactionTaskContext);
        }