public void SetUp()
        {
            game = new GameFactory(Substitute.For <IDateTimeOffset>()).NewGame("Player");
            game.Players[0].Tiles.Add(new Tile()
            {
                Letter = 'A'
            });

            aiGridModel = Substitute.For <IAiGridModel>();
            candidates  = new List <AiCandidate>();
            playerTiles = new List <Tile>();
            aiGridModel.Candidates.Returns(candidates);
            aiGridModel.PlayerTiles.Returns(playerTiles);

            wordFinder    = Substitute.For <WordFindable>();
            goWordFinder  = Substitute.For <IAiGoWordFinder>();
            wordValidator = Substitute.For <WordValidatable>();
            goScorer      = Substitute.For <IGoScorer>();
            goPlacer      = Substitute.For <IAiGoPlacer>();
            aiGoHandler   = new AiGoHandler(aiGridModel, wordFinder, goWordFinder, wordValidator, goScorer, goPlacer);

            goResult = null;
        }
 void WhenHandleGo()
 {
     goResult = aiGoHandler.Go(game);
 }
 public static Result CreateResultObject(string command)
 {
     Result result = null;
         switch (command) {
             case "attach":
                 result = new AttachResult();
                 break;
             case "detach":
                 result = new DetachResult();
                 break;
             case "getthreads":
                 result = new ThreadsResult();
                 break;
             case "appdomains":
                 result = new AppDomainsResult();
                 break;
             case "assemblies":
                 result = new AssembliesResult();
                 break;
             case "callstack":
                 result = new CallStackResult();
                 break;
             case "setbreakpoint":
                 result = new BreakPointResult();
                 break;
             case "exception":
                 result = new ExceptionResult();
                 break;
             case "go":
                 result = new GoResult();
                 break;
             case "assemblyloadevent":
                 result = new AssemblyLoadResult();
                 break;
             case "removebreakpoint":
                 result = new RemoveBreakPointResult();
                 break;
             case "arguments":
                 result = new ArgumentsResult();
                 break;
             case "members":
                 result = new MembersResult();
                 break;
             case "value":
                 result = new MemberValueResult();
                 break;
         }
         return result;
 }