Esempio n. 1
0
        public void Handle_WrongStatementType_ThrowsException()
        {
            MockRepository     mocks              = new MockRepository();
            IBlacklistManager  blacklistManager   = mocks.Stub <IBlacklistManager>();
            BlockParserContext blockParserContext = new BlockParserContext(
                new ProblemPipeStub(),
                Fragment.CreateNamed("returnFragmentType"),
                new List <ReturnCondition>(),
                blacklistManager,
                delegate { });

            StatementHandlerBase <AssignmentStatement> handler = new AssignmentStatementHandlerController(blockParserContext);
            Method    sampleMethod = IntrospectionUtility.MethodFactory <StatementHandlerBaseSample> ("ContainsReturnStatement");
            Block     sampleBlock  = (Block)sampleMethod.Body.Statements[1];
            Statement sample       = sampleBlock.Statements[0];

            ISymbolTable  symbolTable = mocks.Stub <ISymbolTable>();
            HandleContext context     = new HandleContext(
                sample,
                symbolTable,
                new List <IPreCondition>(),
                new List <string>(),
                new List <BlockAssignment>(),
                new List <int>(),
                new Dictionary <string, bool>(),
                new Dictionary <string, bool>());

            handler.Handle(context);
        }
        public void Handle_WrongStatementType_ThrowsException()
        {
            MockRepository mocks = new MockRepository();
              IBlacklistManager blacklistManager = mocks.Stub<IBlacklistManager>();
              BlockParserContext blockParserContext = new BlockParserContext (
              new ProblemPipeStub(),
              Fragment.CreateNamed ("returnFragmentType"),
              new List<ReturnCondition>(),
              blacklistManager,
              delegate { });

              StatementHandlerBase<AssignmentStatement> handler = new AssignmentStatementHandlerController (blockParserContext);
              Method sampleMethod = IntrospectionUtility.MethodFactory<StatementHandlerBaseSample> ("ContainsReturnStatement");
              Block sampleBlock = (Block) sampleMethod.Body.Statements[1];
              Statement sample = sampleBlock.Statements[0];

              ISymbolTable symbolTable = mocks.Stub<ISymbolTable>();
              HandleContext context = new HandleContext (
              sample,
              symbolTable,
              new List<IPreCondition>(),
              new List<string>(),
              new List<BlockAssignment>(),
              new List<int>(),
              new Dictionary<string, bool>(),
              new Dictionary<string, bool>());
              handler.Handle (context);
        }
        public Dictionary<Type, IStatementHandler> Build()
        {
            Dictionary<Type, IStatementHandler> statementHandlers = new Dictionary<Type, IStatementHandler>();

              ReturnStatementHandler returnStatementHandler = new ReturnStatementHandler (_blockParserContext);
              AssignmentStatementHandlerController assignmentStatementHandler = new AssignmentStatementHandlerController (_blockParserContext);
              ExpressionStatementHandler expressionStatementHandler = new ExpressionStatementHandler (_blockParserContext);
              BranchStatementHandler branchStatementHandler = new BranchStatementHandler (_blockParserContext);
              SwitchStatementHandler switchStatementHandler = new SwitchStatementHandler (_blockParserContext);

              statementHandlers[returnStatementHandler.HandledStatementType] = returnStatementHandler;
              statementHandlers[assignmentStatementHandler.HandledStatementType] = assignmentStatementHandler;
              statementHandlers[expressionStatementHandler.HandledStatementType] = expressionStatementHandler;
              statementHandlers[branchStatementHandler.HandledStatementType] = branchStatementHandler;
              statementHandlers[switchStatementHandler.HandledStatementType] = switchStatementHandler;

              return statementHandlers;
        }
        public Dictionary <Type, IStatementHandler> Build()
        {
            Dictionary <Type, IStatementHandler> statementHandlers = new Dictionary <Type, IStatementHandler>();

            ReturnStatementHandler returnStatementHandler = new ReturnStatementHandler(_blockParserContext);
            AssignmentStatementHandlerController assignmentStatementHandler = new AssignmentStatementHandlerController(_blockParserContext);
            ExpressionStatementHandler           expressionStatementHandler = new ExpressionStatementHandler(_blockParserContext);
            BranchStatementHandler branchStatementHandler = new BranchStatementHandler(_blockParserContext);
            SwitchStatementHandler switchStatementHandler = new SwitchStatementHandler(_blockParserContext);

            statementHandlers[returnStatementHandler.HandledStatementType]     = returnStatementHandler;
            statementHandlers[assignmentStatementHandler.HandledStatementType] = assignmentStatementHandler;
            statementHandlers[expressionStatementHandler.HandledStatementType] = expressionStatementHandler;
            statementHandlers[branchStatementHandler.HandledStatementType]     = branchStatementHandler;
            statementHandlers[switchStatementHandler.HandledStatementType]     = switchStatementHandler;

            return(statementHandlers);
        }