Example #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);
        }
        /// <summary>
        /// Constructor
        /// </summary>
        public MockDataTransaction(IMockDataSession dataSession)
        {
            //Validazione argomenti
            if (dataSession == null)
            {
                throw new ArgumentNullException(nameof(dataSession));
            }

            //Imposto lo stato iniziale
            IsActive           = true;
            IsTransactionOwner = true;
            WasCommitted       = false;
            WasRolledBack      = false;

            //Imposto la data session
            _DataSession = dataSession;

            //Se giĆ  esiste una transanzione sull'holder, esco
            if (_DataSession.Transaction != null)
            {
                return;
            }

            //Imposto l'istanza corrente
            _DataSession.SetActiveTransaction(this);
        }
Example #3
0
        /// <summary>
        /// Convert provided data session in "IMockDataSession"
        /// </summary>
        /// <param name="instance">Instance</param>
        /// <returns>Returns converted data session</returns>
        public static IMockDataSession AsMockDataSession(this IDataSession instance)
        {
            //Arguments validation
            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }

            //Tento il cast della sessione generica a MockDataSession
            IMockDataSession mockSession = instance as IMockDataSession;

            if (mockSession == null)
            {
                throw new InvalidCastException($"Specified data session of type '{instance.GetType().FullName}' " +
                                               $"cannot be converted to type '{typeof(IMockDataSession).FullName}'.");
            }

            //Returns instance
            return(mockSession);
        }