public async Task AddingOneItemWithTagsDoesAddThemToTheCurrentTagList() { var offlineTaskService = A.Fake <IOfflineTaskService>(); var loggingService = A.Fake <ILoggingService>(); var database = TestsHelper.CreateFakeDatabase(); var navigationService = A.Fake <INavigationService>(); var item = new Item() { Id = 1, Tags = new System.Collections.ObjectModel.ObservableCollection <Tag>() { new Tag() { Id = 1, Label = "test" }, new Tag() { Id = 2, Label = "test" }, new Tag() { Id = 3, Label = "test" }, } }; database.Insert(item); var viewModel = new EditTagsViewModel(offlineTaskService, loggingService, database, navigationService); await viewModel.ActivateAsync(item.Id, new Dictionary <string, object>(), Data.Common.NavigationMode.New); Assert.Equal(3, viewModel.Tags.Count); Assert.False(viewModel.TagsCountIsZero); }
public async Task RemovingAnTagAndAddingAnotherExecutesTheProperActions() { var offlineTaskService = A.Fake <IOfflineTaskService>(); var loggingService = A.Fake <ILoggingService>(); var database = TestsHelper.CreateFakeDatabase(); var navigationService = A.Fake <INavigationService>(); var tagToRemove = new Tag() { Id = 2, Label = "test" }; var tagToAdd = new Tag() { Id = 4, Label = "test" }; var item = new Item() { Id = 1, Tags = new System.Collections.ObjectModel.ObservableCollection <Tag>() { new Tag() { Id = 1, Label = "test" }, tagToRemove, new Tag() { Id = 3, Label = "test" }, } }; database.Insert(item); var viewModel = new EditTagsViewModel(offlineTaskService, loggingService, database, navigationService); await viewModel.ActivateAsync(item.Id, new Dictionary <string, object>(), Data.Common.NavigationMode.New); Assert.Equal(3, viewModel.Tags.Count); viewModel.Tags.Add(tagToAdd); viewModel.Tags.Remove(tagToRemove); Assert.Equal(3, viewModel.Tags.Count); viewModel.FinishCommand.Execute(null); A.CallTo(() => offlineTaskService.AddAsync(A <int> .Ignored, OfflineTask.OfflineTaskAction.EditTags, A <List <Tag> > .That.Contains(tagToAdd), A <List <Tag> > .That.Contains(tagToRemove))).MustHaveHappened(Repeated.Exactly.Once); //A.CallTo(() => navigationService.GoBack()).MustHaveHappened(); }