public InputViewModel(GameState gameState, WordRepository wordRepository, Settings settings, WordGameViewModel wordGameViewModel) { _wordRepository = wordRepository; _settings = settings; _words = _wordRepository.Deserialize(settings.WordSize); _random = new Random(); BingoSetupViewModel1 = new BingoSetupViewModel(gameState.Team1); BingoSetupViewModel2 = new BingoSetupViewModel(gameState.Team2); WordInputViewModel = new WordInputViewModel(_words, settings, _random, wordGameViewModel); FocusTeam1 = ReactiveCommand.Create(() => Unit.Default); FocusTeam2 = ReactiveCommand.Create(() => Unit.Default); FocusBingoCard = ReactiveCommand.Create(() => Unit.Default); FocusWordGame = ReactiveCommand.Create(() => Unit.Default); FocusTeam1.Subscribe(x => { TeamWithFocus = 1; if (GameSectionWithFocus == GameSection.Bingo) { SelectedViewModel = BingoSetupViewModel1; } }); FocusTeam2.Subscribe(x => { TeamWithFocus = 2; if (GameSectionWithFocus == GameSection.Bingo) { SelectedViewModel = BingoSetupViewModel2; } }); FocusBingoCard.Subscribe(x => { GameSectionWithFocus = GameSection.Bingo; if (WordInputViewModel.StateInfo != null && WordInputViewModel.StateInfo.State == WordGameState.Won) { WordInputViewModel.Clear(); } if (TeamWithFocus == 1) { SelectedViewModel = BingoSetupViewModel1; return; } SelectedViewModel = BingoSetupViewModel2; }); FocusWordGame.Subscribe(x => { GameSectionWithFocus = GameSection.Word; SelectedViewModel = WordInputViewModel; }); SelectedViewModel = BingoSetupViewModel1; }
public void Deserialize_FileDoesNotExist_Throws() { var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData>()); WordRepository repo = new WordRepository(fileSystem.FileSystem, "words.txt"); Assert.Throws <FileNotFoundException>(() => repo.Deserialize(5)); }
public void Deserialize_IgnoresWordsWhichAreNotAllowed(string word) { var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { { @"c:\words.txt", new MockFileData(word) }, }); WordRepository repo = new WordRepository(fileSystem.FileSystem, @"c:\words.txt"); Assert.IsEmpty(repo.Deserialize(5)); }
public void Deserialize_IJIsSeenAsSingleLetter() { var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { { @"c:\words.txt", new MockFileData("ijsjes") }, }); WordRepository repo = new WordRepository(fileSystem.FileSystem, @"c:\words.txt"); var result = repo.Deserialize(5); CollectionAssert.AreEqual(new string[] { "ijsjes" }, result); }
public void Deserialize_ReturnsAllowedWord(string word) { var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData> { { @"c:\words.txt", new MockFileData(word) }, }); WordRepository repo = new WordRepository(fileSystem.FileSystem, @"c:\words.txt"); var result = repo.Deserialize(5); CollectionAssert.AreEqual(new string[] { word }, result); }