Exemple #1
0
        /// <summary>
        /// Get scenario of specified type from data session
        /// </summary>
        /// <typeparam name="TScenario">Type of scenario</typeparam>
        /// <param name="instance">Instance</param>
        /// <returns>Returns scenario</returns>
        public static TScenario GetScenario <TScenario>(this IDataSession instance)
        {
            //Arguments validation
            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }

            //Try to cast to IMockDataSession
            IMockDataSession mockupSession = instance.AsMockDataSession();

            //Get scenario from data session
            IScenario scenarioFromDataSession = mockupSession.GetScenario();

            //Try cast of scenario to provided type
            if (!(scenarioFromDataSession is TScenario castedScenario))
            {
                throw new InvalidCastException("Scenario contained on data session is of " +
                                               $"type '{scenarioFromDataSession.GetType().FullName}' and cannot be converted " +
                                               $"to type '{typeof(TScenario).FullName}'.");
            }

            //Return scenario
            return(castedScenario);
        }
Exemple #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="dataSession">Active data session</param>
        /// <param name="entitiesExpression">Entities expression</param>
        protected MockRepositoryBase(IDataSession dataSession, Func <TScenarioInterface, IList <TEntity> > entitiesExpression)
        {
            //Arguments validation
            if (dataSession == null)
            {
                throw new ArgumentNullException(nameof(dataSession));
            }

            //Convert to IMockDataSession
            var mockupSession = dataSession.AsMockDataSession();

            //Get scenario from data session
            IScenario scenarioFromDataSession = mockupSession.GetScenario();

            //Try cast of scenario to provided interface
            if (!(scenarioFromDataSession is TScenarioInterface castedScenario))
            {
                throw new InvalidCastException("Scenario contained on data session is of " +
                                               $"type '{scenarioFromDataSession.GetType().FullName}' and cannot be converted " +
                                               $"to type '{typeof(TScenarioInterface).FullName}'.");
            }

            //Set data session and scenario
            DataSession = mockupSession;
            Scenario    = castedScenario;

            //Initialize working mocked entities
            MockedEntities = entitiesExpression(Scenario);
        }