protected override void Context()
 {
     base.Context();
     _parameter = A.Fake <IParameterDTO>();
     _expressionParameterDTO = new ExpressionParameterDTO {
         Parameter = _parameter, GroupName = CoreConstants.Groups.VASCULAR_SYSTEM
     };
 }
        protected override void Context()
        {
            _view = A.Fake <IExpressionParametersView <ExpressionParameterDTO> >();
            _editParameterTask = A.Fake <IEditParameterPresenterTask>();
            sut = new ExpressionParametersPresenter(_view, _editParameterTask);


            _initialConcentration = createParameter(CoreConstants.Parameters.INITIAL_CONCENTRATION);
            _relativeExpression   = createParameter(CoreConstants.Parameters.REL_EXP);
            _relativeExpression2  = createParameter(CoreConstants.Parameters.REL_EXP);
            _fraction_exp_bc      = createParameter(CoreConstants.Parameters.FRACTION_EXPRESSED_BLOOD_CELLS);
        }
        //Internal to allow for testing
        internal bool IsParameterVisible(ExpressionParameterDTO expressionParameterDTO)
        {
            var parameter = expressionParameterDTO.Parameter;

            //global surrogate parameters depending on settings
            if (string.Equals(expressionParameterDTO.GroupName, CoreConstants.Groups.VASCULAR_SYSTEM))
            {
                switch (parameter.Name)
                {
                case REL_EXP_BLOOD_CELLS:
                    return(_protein.InBloodCells);

                case FRACTION_EXPRESSED_BLOOD_CELLS:
                case FRACTION_EXPRESSED_BLOOD_CELLS_MEMBRANE:
                    return(_protein.IsBloodCellsMembrane && _protein.IsBloodCellsIntracellular);

                case REL_EXP_VASCULAR_ENDOTHELIUM:
                    return(_protein.InVascularEndothelium);

                case FRACTION_EXPRESSED_VASC_ENDO_ENDOSOME:
                    return(_protein.IsVascEndosome && (_protein.IsVascMembraneTissueSide || _protein.IsVascMembranePlasmaSide));

                case FRACTION_EXPRESSED_VASC_ENDO_TISSUE_SIDE:
                    return(_protein.IsVascMembraneTissueSide && (_protein.IsVascEndosome || _protein.IsVascMembranePlasmaSide));

                case FRACTION_EXPRESSED_VASC_ENDO_PLASMA_SIDE:
                    return(_protein.IsVascMembranePlasmaSide && (_protein.IsVascEndosome || _protein.IsVascMembraneTissueSide));
                }
            }

            //tissue location. Rel exp visible if we are expressing it
            switch (parameter.Name)
            {
            case REL_EXP:
                return(_protein.InTissue);

            case FRACTION_EXPRESSED_INTRACELLULAR:
            case FRACTION_EXPRESSED_INTERSTITIAL:
                return(_protein.IsIntracellular && _protein.IsInterstitial);
            }

            return(true);
        }
        protected override void Context()
        {
            _view = A.Fake <IIndividualProteinExpressionsView>();
            _individualProteinMapper         = A.Fake <IIndividualProteinToIndividualProteinDTOMapper>();
            _moleculesPropertiesPresenter    = A.Fake <IIndividualMoleculePropertiesPresenter <Individual> >();
            _expressionLocalizationPresenter = A.Fake <IExpressionLocalizationPresenter <Individual> >();
            _expressionParametersPresenter   = A.Fake <IExpressionParametersPresenter>();

            sut = new IndividualEnzymeExpressionsPresenter <Individual>(
                _view, _individualProteinMapper,
                _moleculesPropertiesPresenter,
                _expressionLocalizationPresenter,
                _expressionParametersPresenter);


            _individual           = new Individual();
            sut.SimulationSubject = _individual;


            _enzyme = new IndividualEnzyme().WithName("CYP3A4");

            _enzymeDTO            = new IndividualProteinDTO(_enzyme);
            _initialConcentration = createParameter(INITIAL_CONCENTRATION);
            _relativeExpression   = createParameter(REL_EXP);
            _relativeExpression2  = createParameter(REL_EXP);
            _fraction_exp_bc      = createParameter(FRACTION_EXPRESSED_BLOOD_CELLS);
            _enzymeDTO.AddExpressionParameter(_initialConcentration);
            _enzymeDTO.AddExpressionParameter(_relativeExpression);
            _enzymeDTO.AddExpressionParameter(_fraction_exp_bc);
            A.CallTo(() => _individualProteinMapper.MapFrom(_enzyme, _individual)).Returns(_enzymeDTO);
            A.CallTo(() => _expressionParametersPresenter.Edit(A <IReadOnlyList <ExpressionParameterDTO> > ._))
            .Invokes(x => _allParameters = x.GetArgument <IReadOnlyList <ExpressionParameterDTO> >(0).ToList());


            sut.ActivateMolecule(_enzyme);
        }