public void TearDown()
        {
            _checker    = null;
            _inputFile  = null;
            _resultNode = null;
            _dataPacket = null;
            _selection  = null;

            _logger         = null;
            _mockRepository = null;
        }
        public void SetUp()
        {
            _mockRepository = new MockRepository();
            _logger         = MockRepository.GenerateStub <IForensicIntegrityLog>();

            _selection  = MockRepository.GenerateStub <ISelection>();
            _dataPacket = MockRepository.GenerateStub <IDataPacket>();
            _resultNode = MockRepository.GenerateStub <IResultNode>();
            _inputFile  = MockRepository.GenerateStub <IInputFile>();

            _checker = new ParametersChecker(_logger);
        }
Exemple #3
0
        /// <summary>
        /// Traitement de la commande.
        /// </summary>
        /// <typeparam name="QueryT">Type de la commande.</typeparam>
        /// <typeparam name="ResultT">Type du résultat.</typeparam>
        /// <param name="query">Commande.</param>
        /// <param name="resultAccessor"></param>
        /// <returns>Résultat d'exécution de la commande.</returns>
        private async Task <IWrittableResult <ResultT> > ProcessInternal <QueryT, ResultT>(QueryT query, Func <QueryT, ResultT> resultAccessor)
            where QueryT : IQuery
        {
            try
            {
                // Initialisation du résultat.
                IWrittableResult <ResultT> result = new ExecutionResult <ResultT>();

                // Contrôles des paramètres et du contexte.
                IChecker contextChecker    = new ContextChecker(result);
                IChecker parametersChecker = new ParametersChecker(result);
                query.CheckContext(applicationContext, contextChecker);
                query.CheckParameters(parametersChecker);

                // Contrôle de la possiblité d'exécuter la commande. Si non, on indique que l'exécution a échoué.
                if (result.ValidContext && result.ValidParameters)
                {
                    try
                    {
                        // Exécution de la commande.
                        await query.ExecuteAsync(executionContext, applicationContext);

                        result.SetSucces(true);
                    }
                    catch (Exception error)
                    {
                        result.AddError(error);
                        result.SetSucces(false);
                    }

                    // Si la commande a reussi, affectation du résultat.
                    if (result.Success && query is IQuery <ResultT> )
                    {
                        result.SetResult(resultAccessor(query));
                    }
                }
                else
                {
                    result.SetSucces(false);
                }

                return(result);
            }
            catch (Exception error)
            {
                throw error;
            }
        }