Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
        }