public void HandleTagCheckedChanged_Test()
        {
            // arrange
            var           fakeView     = A.Fake <IAddMediaItemForm>();
            List <string> selectedTags = new List <string> {
                "tag1"
            };
            List <string> unselectedTags = new List <string> {
                "tag2"
            };

            A.CallTo(() => fakeView.SelectedTags).Returns(selectedTags);
            A.CallTo(() => fakeView.UnselectedTags).Returns(unselectedTags);
            var                       fakeMediaItemService = A.Fake <IMediaItemService>();
            var                       fakeTagService       = A.Fake <ITagService>();
            var                       fakeImageFileReader  = A.Fake <IImageFileReader>();
            MockPresenter             presenter            = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);
            Dictionary <string, bool> allTags = new Dictionary <string, bool>();

            allTags.Add("tag1", false);
            allTags.Add("tag2", true);
            presenter.SetAllTags(allTags);

            // act
            presenter.HandleTagCheckedChanged(null, null);

            // assert
            Assert.IsTrue(presenter.GetAllTagsValueByKey("tag1"));
            Assert.IsFalse(presenter.GetAllTagsValueByKey("tag2"));
        }
        public void HandleAddNewTagClicked_Test_TagDoesNotYetExist()
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

            A.CallTo(() => fakeView.ShowNewTagDialog()).Returns("tag2");
            var                       fakeMediaItemService = A.Fake <IMediaItemService>();
            var                       fakeTagService       = A.Fake <ITagService>();
            var                       fakeImageFileReader  = A.Fake <IImageFileReader>();
            MockPresenter             presenter            = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);
            Dictionary <string, bool> allTags = new Dictionary <string, bool>();

            allTags.Add("tag1", true);
            presenter.SetAllTags(allTags);

            // act
            presenter.HandleAddNewTagClicked(null, null);

            // assert
            Assert.IsTrue(presenter.GetAllTagsValueByKey("tag2"));
        }
        public async Task PopulateTagsList_Test()
        {
            // arrange
            var        fakeView             = A.Fake <IAddMediaItemForm>();
            var        fakeMediaItemService = A.Fake <IMediaItemService>();
            var        fakeTagService       = A.Fake <ITagService>();
            List <Tag> tags = new List <Tag> {
                new Tag {
                    Name = "tag"
                }
            };

            A.CallTo(() => fakeTagService.GetAll()).Returns(tags);
            var           fakeImageFileReader = A.Fake <IImageFileReader>();
            MockPresenter presenter           = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);

            // act
            await presenter.PopulateTagsList();

            // assert
            Assert.IsFalse(presenter.GetAllTagsValueByKey("tag"));
        }