public async Task PracticeDeckCommandEnabledTest() { Deck deck = new Deck() { DeckId = 2 }; ApiConnectorMock mock = CreateMockForInitialize(new List <Deck>()); DeckSearchViewModel viewModel = new DeckSearchViewModel(navigationManagerMock, mock); await viewModel.InitializeAsync(); Assert.IsFalse(viewModel.PracticeDeckCommand.IsEnabledFunction(deck)); deck.CardCount = 1; Assert.IsTrue(viewModel.PracticeDeckCommand.IsEnabledFunction(deck)); }
public async Task DoesExecuteSearchOnInitializeTest() { Deck deck = new Deck(); ApiConnectorMock mock = CreateMockForInitialize(new List <Deck>() { deck }); NavigationManagerMock navigationManagerMock = new NavigationManagerMock(); DeckSearchViewModel viewModel = new DeckSearchViewModel(navigationManagerMock, mock); bool result = await viewModel.InitializeAsync(); Assert.IsTrue(result); Assert.AreEqual(1, viewModel.SearchResults.Count); Assert.AreSame(deck, viewModel.SearchResults[0]); }
public void TogglePinnedTest() { Deck deck = new Deck() { DeckId = 2 }; ApiConnectorMock mock = new ApiConnectorMock(); DeckSearchViewModel viewModel = new DeckSearchViewModel(navigationManagerMock, mock) { SelectedEntity = deck }; mock.Replies.Push(new ApiReply() { WasSuccessful = true }); viewModel.TogglePinned(true, deck); Assert.IsTrue(deck.IsPinned); Assert.AreEqual(HttpMethod.Put, mock.Methods.Pop()); Assert.AreSame(deck, mock.Parameters.Pop()); }
public async Task ExecuteSearchParametersTest() { ApiConnectorMock mock = CreateMockForInitialize(new List <Deck>()); DeckSearchViewModel viewModel = new DeckSearchViewModel(navigationManagerMock, mock); await viewModel.SearchAsync(); Dictionary <string, object> parameters = mock.Parameters.Pop() as Dictionary <string, object>; Assert.AreEqual(0, parameters.Count); viewModel.SearchText = "text"; mock.Replies.Push(new ApiReply <List <Deck> >() { WasSuccessful = true, Result = new List <Deck>() }); await viewModel.SearchAsync(); parameters = mock.Parameters.Pop() as Dictionary <string, object>; Assert.AreEqual(1, parameters.Count); Assert.AreEqual("text", parameters[nameof(viewModel.SearchText)]); }
public async Task CommandsAreInitializedCorrectlyTest() { Deck deck = new Deck() { DeckId = 2 }; ApiConnectorMock mock = CreateMockForInitialize(new List <Deck>()); DeckSearchViewModel viewModel = new DeckSearchViewModel(navigationManagerMock, mock) { SelectedEntity = deck }; await viewModel.InitializeAsync(); Assert.IsNotNull(viewModel.NewCommand.CommandText); Assert.IsNotNull(viewModel.NewCommand.ToolTip); Assert.AreEqual("/New", viewModel.NewCommand.TargetUri); Assert.IsTrue(viewModel.NewCommand.IsRelative); Assert.IsNotNull(viewModel.EditCommand.CommandText); Assert.IsNotNull(viewModel.EditCommand.ToolTip); Assert.AreEqual("/2", viewModel.EditCommand.TargetUriFactory.Invoke(deck)); Assert.IsTrue(viewModel.EditCommand.IsRelative); Assert.IsNotNull(viewModel.ShowStatisticsCommand.CommandText); Assert.IsNotNull(viewModel.ShowStatisticsCommand.ToolTip); Assert.AreEqual("/2/Statistics", viewModel.ShowStatisticsCommand.TargetUriFactory.Invoke(deck)); Assert.IsTrue(viewModel.ShowStatisticsCommand.IsRelative); Assert.IsNotNull(viewModel.PracticeDeckCommand.CommandText); Assert.IsNotNull(viewModel.PracticeDeckCommand.ToolTip); Assert.AreEqual("/2/Practice", viewModel.PracticeDeckCommand.TargetUriFactory.Invoke(deck)); Assert.IsTrue(viewModel.PracticeDeckCommand.IsRelative); Assert.IsNotNull(viewModel.DeleteCommand.CommandText); Assert.IsNotNull(viewModel.DeleteCommand.ToolTip); }