void Start()
    {
        myDropdown.onValueChanged.AddListener(delegate {
            myDropdownValueChangedHandler(myDropdown);
        });

        GameMaster = GameObject.Find("GameMaster");
        RestartGameControllerScript = GameMaster.GetComponent <RestartGameController>();
    }
        public void WhenReceiveCommandOnRestartGamePressed_CallToRestart()
        {
            var inGameViewModel = new InGameViewModel();
            var restartGame     = Substitute.For <IRestartGame>();

            var startGameController = new RestartGameController(inGameViewModel, restartGame);

            inGameViewModel.OnRestartGamePressed.Execute();

            restartGame.Received().Restart();
        }
        private void Start()
        {
            var mainMenuViewModel = new MainMenuViewModel();
            var inGameViewModel   = new InGameViewModel();
            var loadingViewModel  = new LoadingViewModel();

            InstantiateViews(mainMenuViewModel, inGameViewModel, loadingViewModel);

            // TODO: these services should be unique, instantiate it in a previous step
            var gameRepository    = new GameRepository();
            var gameServerService = new GameServerService
                                    (
                new RestRestClientAdapter(new JsonUtilityAdapter()),
                gameRepository
                                    );
            var eventDispatcherService = new EventDispatcherService();
            var startGameUseCase       =
                new StartGameUseCase(gameServerService, gameRepository, new ConfigurationGameRepository(),
                                     eventDispatcherService);
            var startGameController = new StartGameController(mainMenuViewModel,
                                                              startGameUseCase
                                                              );
            var keyboardController = new KeyboardController(inGameViewModel,
                                                            new GuessLetterUseCase(
                                                                new CheckSolutionUseCase(
                                                                    gameServerService,
                                                                    gameRepository,
                                                                    eventDispatcherService
                                                                    ),
                                                                gameRepository,
                                                                gameServerService,
                                                                eventDispatcherService
                                                                )
                                                            );
            var restartGameController =
                new RestartGameController(inGameViewModel,
                                          new RestartGameUseCase(startGameUseCase, eventDispatcherService));

            var updateWordPresenter = new InGamePresenter(inGameViewModel, eventDispatcherService);
            var mainMenuPresenter   = new MainMenuPresenter(mainMenuViewModel, eventDispatcherService);
            var loadingPresenter    = new LoadingPresenter(loadingViewModel, eventDispatcherService);
        }