public void TwitterSearch_Success_Callback_Sets_Tweets() { using (var setup = new MockSetup()) { setup.Initialize(); string search = null; Action <IEnumerable <Tweet> > success = null; Action <Exception> error = null; setup .Twitter .Setup(x => x.StartAsyncSearch(It.IsAny <string>(), It.IsAny <Action <IEnumerable <Tweet> > >(), It.IsAny <Action <Exception> >())) .Callback <string, Action <IEnumerable <Tweet> >, Action <Exception> >((s, s2, e) => { search = s; success = s2; error = e; }); var viewModel = new TwitterViewModel("mySearchTerm"); var calledChanges = new List <string>(); viewModel.PropertyChanged += (s, a) => calledChanges.Add(a.PropertyName); var result = new[] { new Tweet(), new Tweet() }; success(result); Assert.AreEqual(2, calledChanges.Count); CollectionAssert.Contains(calledChanges, "Tweets"); Assert.AreEqual(2, viewModel.Tweets.Count()); CollectionAssert.Contains(viewModel.Tweets.ToList(), result[0]); CollectionAssert.Contains(viewModel.Tweets.ToList(), result[1]); } }
public void PickRandom_Changes_SearchText() { using (var setup = new MockSetup()) { setup.Initialize(); var viewModel = new HomeViewModel(); Assert.IsNotNull(viewModel.SearchText); var calledProperties = new List <string>(); viewModel.PropertyChanged += (sender, args) => calledProperties.Add(args.PropertyName); Assert.AreEqual(0, calledProperties.Count); var existingSearchText = viewModel.SearchText; viewModel.PickRandomCommand.Execute(); Assert.AreEqual(1, calledProperties.Count); Assert.AreEqual("SearchText", calledProperties[0]); Assert.AreNotEqual(existingSearchText, viewModel.SearchText); existingSearchText = viewModel.SearchText; viewModel.PickRandomCommand.Execute(); Assert.AreEqual(2, calledProperties.Count); Assert.AreEqual("SearchText", calledProperties[0]); Assert.AreEqual("SearchText", calledProperties[1]); Assert.AreNotEqual(existingSearchText, viewModel.SearchText); } }
public void TwitterSearch_Constructor_Requests_A_TwitterSearch() { using (var setup = new MockSetup()) { setup.Initialize(); string search = null; Action <IEnumerable <Tweet> > success = null; Action <Exception> error = null; setup .Twitter .Setup(x => x.StartAsyncSearch(It.IsAny <string>(), It.IsAny <Action <IEnumerable <Tweet> > >(), It.IsAny <Action <Exception> >())) .Callback <string, Action <IEnumerable <Tweet> >, Action <Exception> >((s, s2, e) => { search = s; success = s2; error = e; }); var viewModel = new TwitterViewModel("mySearchTerm"); setup .Twitter .Verify(x => x.StartAsyncSearch(It.IsAny <string>(), It.IsAny <Action <IEnumerable <Tweet> > >(), It.IsAny <Action <Exception> >()), Times.Once()); Assert.AreEqual("mySearchTerm", search); Assert.IsNotNull(success); Assert.IsNotNull(error); } }
public void TwitterSearch_Error_Callback_Clears_IsSearching() { using (var setup = new MockSetup()) { setup.Initialize(); string search = null; Action <IEnumerable <Tweet> > success = null; Action <Exception> error = null; setup .Twitter .Setup(x => x.StartAsyncSearch(It.IsAny <string>(), It.IsAny <Action <IEnumerable <Tweet> > >(), It.IsAny <Action <Exception> >())) .Callback <string, Action <IEnumerable <Tweet> >, Action <Exception> >((s, s2, e) => { search = s; success = s2; error = e; }); var viewModel = new TwitterViewModel("mySearchTerm"); var calledChanges = new List <string>(); viewModel.PropertyChanged += (s, a) => calledChanges.Add(a.PropertyName); error(new Exception("Test exception")); Assert.AreEqual(1, calledChanges.Count); CollectionAssert.Contains(calledChanges, "IsSearching"); Assert.IsFalse(viewModel.IsSearching); Assert.IsNull(viewModel.Tweets); } }
public void SetUp() { _client = new DropBoxClientMock_ReturnsFileContent(); _setup = new MockSetup(_client, _fileSelector); _setup.Initialize(); _viewModel = new FileContentViewModel("file.txt"); }
public void TwitterSearch_Constructor_Sets_IsSearching_True() { using (var setup = new MockSetup()) { setup.Initialize(); var viewModel = new TwitterViewModel("mySearchTerm"); Assert.IsTrue(viewModel.IsSearching); } }
public void User_Can_Change_SearchText() { using (var setup = new MockSetup()) { setup.Initialize(); var viewModel = new HomeViewModel(); Assert.IsNotNull(viewModel.SearchText); viewModel.SearchText = "MyTestString"; Assert.AreEqual("MyTestString", viewModel.SearchText); } }
public void SearchCommand_Calls_RequestNavigate() { using (var setup = new MockSetup()) { setup.Initialize(); var requests = new List <MvxShowViewModelRequest>(); setup.Dispatcher .Setup(x => x.RequestNavigate(It.IsAny <MvxShowViewModelRequest>())) .Callback <MvxShowViewModelRequest>((request) => requests.Add(request)); var viewModel = new HomeViewModel(); viewModel.SearchText = "MyTestValue"; viewModel.SearchCommand.Execute(); setup.Dispatcher .Verify(x => x.RequestNavigate(It.IsAny <MvxShowViewModelRequest>()), Times.Once()); Assert.AreEqual(1, requests.Count); Assert.AreEqual(typeof(TwitterViewModel), requests[0].ViewModelType); Assert.AreEqual(false, requests[0].ClearTop); Assert.AreEqual(MvxRequestedBy.UserAction, requests[0].RequestedBy); Assert.AreEqual(1, requests[0].ParameterValues.Count); Assert.AreEqual("MyTestValue", requests[0].ParameterValues["searchTerm"]); } }