Esempio n. 1
0
        public void SearchButtonClicked_Test_OtherError()
        {
            // arrange
            string isbn = "0123456789";
            var    fakeSearchByIsbnDialog = A.Fake <ISearchByIsbn>();

            A.CallTo(() => fakeSearchByIsbnDialog.IsbnFieldText).Returns(isbn);
            var fakeRepo = A.Fake <IBookService>();

            A.CallTo(() => fakeRepo.ExistsWithIsbn("0123456789")).Returns(false);
            var fakeApiServiceProvider = A.Fake <IApiServiceProvider>();
            var fakeApiService         = A.Fake <IBookApiService>();

            A.CallTo(() => fakeApiServiceProvider.Get()).Returns(fakeApiService);
            A.CallTo(() => fakeApiService.GetBookByIsbnAsync("0123456789")).Throws(new Exception("error"));
            var presenter = new MockPresenter(fakeSearchByIsbnDialog, null, null, fakeRepo, fakeApiServiceProvider);

            presenter.AddBookPresenter = this._addBookPresenter;

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

            // assert
            A.CallTo(() => fakeSearchByIsbnDialog.ShowErrorDialog("error")).MustHaveHappened();
        }
Esempio n. 2
0
        public void SearchButtonClicked_Test_Success()
        {
            // arrange
            string isbn = "0123456789";
            var    fakeSearchByIsbnDialog = A.Fake <ISearchByIsbn>();

            A.CallTo(() => fakeSearchByIsbnDialog.IsbnFieldText).Returns(isbn);
            var fakeRepo = A.Fake <IBookService>();

            A.CallTo(() => fakeRepo.ExistsWithIsbn("0123456789")).Returns(false);
            var fakeApiServiceProvider = A.Fake <IApiServiceProvider>();
            var fakeApiService         = A.Fake <IBookApiService>();

            A.CallTo(() => fakeApiServiceProvider.Get()).Returns(fakeApiService);
            A.CallTo(() => fakeApiService.GetBookByIsbnAsync("0123456789")).Returns(new Book {
                Title = "book", Publisher = new Publisher {
                    Name = "publisher"
                }
            });
            var fakeAddBookDialog = A.Fake <IAddBookForm>();
            var presenter         = new MockPresenter(fakeSearchByIsbnDialog, null, fakeAddBookDialog, fakeRepo, fakeApiServiceProvider);

            presenter.AddBookPresenter = this._addBookPresenter;

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

            // assert
            A.CallTo(() => fakeAddBookDialog.ShowAsDialog()).MustHaveHappened();
        }
        public async Task SaveButtonClicked_Test_ErrorAddingItem(string runningTimeFieldEntry, string notesFieldEntry, string imageFilePathFieldEntry)
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

            A.CallTo(() => fakeView.TitleFieldText).Returns("title");
            A.CallTo(() => fakeView.NumberFieldText).Returns("0123456789");
            A.CallTo(() => fakeView.RunningTimeFieldEntry).Returns(runningTimeFieldEntry);
            A.CallTo(() => fakeView.YearFieldEntry).Returns("2021");
            A.CallTo(() => fakeView.NotesFieldText).Returns(notesFieldEntry);
            A.CallTo(() => fakeView.ImageFilePathFieldText).Returns(imageFilePathFieldEntry);
            A.CallTo(() => fakeView.SelectedCategory).Returns("Dvd");
            A.CallTo(() => fakeView.SelectedTags).Returns(new List <string> {
                "tag"
            });
            var fakeMediaItemService = A.Fake <IMediaItemService>();

            A.CallTo(() => fakeMediaItemService.ExistsWithTitle("title")).Returns(false);
            var           fakeTagService      = A.Fake <ITagService>();
            var           fakeImageFileReader = A.Fake <IImageFileReader>();
            MockPresenter presenter           = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);

            A.CallTo(() => fakeMediaItemService.Add(A <MediaItem> .That.Matches(i => i.Title == "title"))).Throws(new Exception("error"));

            // act
            await presenter.HandleSaveButtonClicked(null, null);

            // assert
            A.CallTo(() => fakeView.ShowErrorDialog("Error creating item", "error")).MustHaveHappened();
            Assert.IsTrue(fakeView.SaveButtonEnabled);
            Assert.IsTrue(fakeView.CancelButtonEnabled);
        }
        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 async Task SaveButtonClicked_Test_Success(string runningTimeFieldEntry, string notesFieldEntry, string imageFilePathFieldEntry)
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

            A.CallTo(() => fakeView.TitleFieldText).Returns("title");
            A.CallTo(() => fakeView.NumberFieldText).Returns("0123456789");
            A.CallTo(() => fakeView.RunningTimeFieldEntry).Returns(runningTimeFieldEntry);
            A.CallTo(() => fakeView.YearFieldEntry).Returns("2021");
            A.CallTo(() => fakeView.NotesFieldText).Returns(notesFieldEntry);
            A.CallTo(() => fakeView.ImageFilePathFieldText).Returns(imageFilePathFieldEntry);
            A.CallTo(() => fakeView.SelectedCategory).Returns("Dvd");
            A.CallTo(() => fakeView.SelectedTags).Returns(new List <string> {
                "tag"
            });
            var fakeMediaItemService = A.Fake <IMediaItemService>();

            A.CallTo(() => fakeMediaItemService.ExistsWithTitle("title")).Returns(false);
            var           fakeTagService      = A.Fake <ITagService>();
            var           fakeImageFileReader = A.Fake <IImageFileReader>();
            MockPresenter presenter           = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);

            // act
            await presenter.HandleSaveButtonClicked(null, null);

            // assert
            A.CallTo(() => fakeMediaItemService.Add(A <MediaItem> .That.Matches(i =>
                                                                                i.Title == "title" &&
                                                                                i.Number == 0123456789 &&
                                                                                i.ReleaseYear == 2021 &&
                                                                                i.Notes == notesFieldEntry &&
                                                                                i.Type == ItemType.Dvd))).MustHaveHappened();
            A.CallTo(() => fakeView.CloseDialog()).MustHaveHappened();
        }
        public async Task SaveButtonClicked_Test_ErrorWhenCheckingIfExists(string runningTimeFieldEntry, string notesFieldEntry, string imageFilePathFieldEntry)
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

            A.CallTo(() => fakeView.TitleFieldText).Returns("title");
            A.CallTo(() => fakeView.NumberFieldText).Returns("0123456789");
            A.CallTo(() => fakeView.RunningTimeFieldEntry).Returns(runningTimeFieldEntry);
            A.CallTo(() => fakeView.YearFieldEntry).Returns("2021");
            A.CallTo(() => fakeView.NotesFieldText).Returns(notesFieldEntry);
            A.CallTo(() => fakeView.ImageFilePathFieldText).Returns(imageFilePathFieldEntry);
            var fakeMediaItemService = A.Fake <IMediaItemService>();

            A.CallTo(() => fakeMediaItemService.ExistsWithTitle("title")).Throws(new Exception("error"));
            var           fakeTagService      = A.Fake <ITagService>();
            var           fakeImageFileReader = A.Fake <IImageFileReader>();
            MockPresenter presenter           = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);

            // act
            await presenter.HandleSaveButtonClicked(null, null);

            // assert
            A.CallTo(() => fakeView.ShowErrorDialog("Error checking title.", "error")).MustHaveHappened();
            Assert.IsTrue(fakeView.SaveButtonEnabled);
            Assert.IsTrue(fakeView.CancelButtonEnabled);
        }
        public void HandleAddNewTagClicked_Test_NoEntry()
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

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

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

            // assert
            A.CallTo(() => fakeView.ShowTagAlreadyExistsDialog("")).MustNotHaveHappened();
        }
Esempio n. 8
0
        public void SearchButtonClicked_Test_AlreadyExists()
        {
            // arrange
            string isbn = "0123456789";
            var    fakeSearchByIsbnDialog = A.Fake <ISearchByIsbn>();

            A.CallTo(() => fakeSearchByIsbnDialog.IsbnFieldText).Returns(isbn);
            var fakeRepo = A.Fake <IBookService>();

            A.CallTo(() => fakeRepo.ExistsWithIsbn("0123456789")).Returns(true);
            var presenter = new MockPresenter(fakeSearchByIsbnDialog, null, null, fakeRepo, null);

            presenter.AddBookPresenter = this._addBookPresenter;

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

            // assert
            A.CallTo(() => fakeSearchByIsbnDialog.ShowAlreadyExistsWithIsbnDialog(isbn)).MustHaveHappened();
        }
        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 void HandleAddNewTagClicked_Test_TagAlreadyExists()
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

            A.CallTo(() => fakeView.ShowNewTagDialog()).Returns("tag1");
            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
            A.CallTo(() => fakeView.ShowTagAlreadyExistsDialog("tag1")).MustHaveHappened();
        }
        public void InputFieldsValidated_Test_Valid_NoImageFilePath(string notesFieldEntry, string runningTimeFieldEntry)
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

            A.CallTo(() => fakeView.TitleFieldText).Returns("new item");
            A.CallTo(() => fakeView.NumberFieldText).Returns("0123456789");
            A.CallTo(() => fakeView.RunningTimeFieldEntry).Returns(runningTimeFieldEntry);
            A.CallTo(() => fakeView.YearFieldEntry).Returns("2021");
            A.CallTo(() => fakeView.NotesFieldText).Returns(notesFieldEntry);
            A.CallTo(() => fakeView.ImageFilePathFieldText).Returns("");
            var           fakeMediaItemService = A.Fake <IMediaItemService>();
            var           fakeTagService       = A.Fake <ITagService>();
            var           fakeImageFileReader  = A.Fake <IImageFileReader>();
            MockPresenter presenter            = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);

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

            // assert
            Assert.IsTrue(fakeView.SaveButtonEnabled);
        }
        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"));
        }
        public void InputFieldsUpdated_Test_Invalid_HasImageFilePath(string titleFieldEntry, string numberFieldEntry, string runningTimeFieldEntry, string releaseYearFieldEntry, string notesFieldEntry,
                                                                     string ext)
        {
            // arrange
            var fakeView = A.Fake <IAddMediaItemForm>();

            A.CallTo(() => fakeView.TitleFieldText).Returns(titleFieldEntry);
            A.CallTo(() => fakeView.NumberFieldText).Returns(numberFieldEntry);
            A.CallTo(() => fakeView.RunningTimeFieldEntry).Returns(runningTimeFieldEntry);
            A.CallTo(() => fakeView.YearFieldEntry).Returns(releaseYearFieldEntry);
            A.CallTo(() => fakeView.NotesFieldText).Returns(notesFieldEntry);
            A.CallTo(() => fakeView.ImageFilePathFieldText).Returns(@"C:\path\to\file" + ext);
            var           fakeMediaItemService = A.Fake <IMediaItemService>();
            var           fakeTagService       = A.Fake <ITagService>();
            var           fakeImageFileReader  = A.Fake <IImageFileReader>();
            MockPresenter presenter            = new MockPresenter(fakeMediaItemService, fakeTagService, fakeView, fakeImageFileReader);

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

            // assert
            Assert.IsFalse(fakeView.SaveButtonEnabled);
        }