Пример #1
0
        public async Task SaveButtonClicked_Test_ErrorWhileCheckingIfIsbnAlreadyExists()
        {
            // arrange
            var fakeView = A.Fake <IAddBookForm>();

            A.CallTo(() => fakeView.LongTitleFieldText).Returns("test book");
            A.CallTo(() => fakeView.IsbnFieldText).Returns("0123456789");
            var       fakeBookRepo = A.Fake <IBookService>();
            Exception ex           = new Exception("error");

            A.CallTo(() => fakeBookRepo.ExistsWithIsbn("0123456789")).Throws(ex);
            var fakeTagService          = A.Fake <ITagService>();
            var fakeAuthorService       = A.Fake <IAuthorService>();
            var fakePublisherService    = A.Fake <IPublisherService>();
            MockBookPresenter presenter = new MockBookPresenter(fakeBookRepo, fakeTagService, fakeAuthorService, fakePublisherService,
                                                                fakeView, null);

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

            // assert
            A.CallTo(() => fakeView.ShowErrorDialog("Error checking if title or ISBN exists.", "error"));
            Assert.IsTrue(fakeView.SaveButtonEnabled);
            Assert.IsTrue(fakeView.CancelButtonEnabled);
        }
Пример #2
0
        public async Task SaveButtonClicked_Test_ErrorReadingImageFile()
        {
            // arrange
            var fakeView = A.Fake <IAddBookForm>();

            A.CallTo(() => fakeView.TitleFieldText).Returns("test_book");
            A.CallTo(() => fakeView.LongTitleFieldText).Returns("test_book");
            A.CallTo(() => fakeView.IsbnFieldText).Returns("0123456789");
            A.CallTo(() => fakeView.ImageFilePathFieldText).Returns(@"C:\path\to\image.jpeg");
            A.CallTo(() => fakeView.SelectedPublisher).Returns("some_publisher");
            A.CallTo(() => fakeView.PagesFieldText).Returns("100");
            A.CallTo(() => fakeView.LanguageFieldText).Returns("English");
            var fakeBookService      = A.Fake <IBookService>();
            var fakeTagService       = A.Fake <ITagService>();
            var fakeAuthorService    = A.Fake <IAuthorService>();
            var fakePublisherService = A.Fake <IPublisherService>();
            var fakeImageFileReader  = A.Fake <IImageFileReader>();

            A.CallTo(() => fakeImageFileReader.ReadBytes()).Throws(new System.IO.IOException("error"));
            MockBookPresenter presenter = new MockBookPresenter(fakeBookService, fakeTagService, fakeAuthorService, fakePublisherService,
                                                                fakeView, fakeImageFileReader);

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

            // assert
            A.CallTo(() => fakeView.ShowErrorDialog("Image file error", "error")).MustHaveHappened();
            Assert.IsTrue(fakeView.SaveButtonEnabled);
            Assert.IsTrue(fakeView.CancelButtonEnabled);
        }
Пример #3
0
        public async Task SaveButtonClicked_Test_ErrorSavingBook(string longTitle, string isbnFieldText, string isbn13FieldText, string deweyDecimalFieldText,
                                                                 string ext)
        {
            // arrange
            var fakeView = A.Fake <IAddBookForm>();

            A.CallTo(() => fakeView.TitleFieldText).Returns("title");
            A.CallTo(() => fakeView.LongTitleFieldText).Returns(longTitle);
            A.CallTo(() => fakeView.LanguageFieldText).Returns("English");
            A.CallTo(() => fakeView.PagesFieldText).Returns("60");
            A.CallTo(() => fakeView.SelectedPublisher).Returns("publisher");
            A.CallTo(() => fakeView.Isbn13FieldText).Returns(isbn13FieldText);
            A.CallTo(() => fakeView.IsbnFieldText).Returns(isbnFieldText);
            A.CallTo(() => fakeView.DeweyDecimalFieldText).Returns(deweyDecimalFieldText);
            A.CallTo(() => fakeView.ImageFilePathFieldText).Returns(@"C:\path\to\file." + ext);
            var fakeBookService = A.Fake <IBookService>();

            A.CallTo(() => fakeBookService.Add(A <Book> .That.Matches(b => b.Title == "title"))).Throws(new Exception("error"));
            var fakeTagService          = A.Fake <ITagService>();
            var fakeAuthorService       = A.Fake <IAuthorService>();
            var fakePublisherService    = A.Fake <IPublisherService>();
            var fakeImageFileReader     = A.Fake <IImageFileReader>();
            MockBookPresenter presenter = new MockBookPresenter(fakeBookService, fakeTagService, fakeAuthorService, fakePublisherService,
                                                                fakeView, fakeImageFileReader);

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

            // assert
            decimal?deweyDecimal;

            if (System.Text.RegularExpressions.Regex.IsMatch(deweyDecimalFieldText, Book.DEWEY_DECIMAL_PATTERN))
            {
                deweyDecimal = decimal.Parse(deweyDecimalFieldText);
            }
            else
            {
                deweyDecimal = null;
            }
            A.CallTo(() => fakeBookService.Add(A <Book> .That.Matches(b =>
                                                                      b.Title == "title" &&
                                                                      b.TitleLong == longTitle &&
                                                                      b.Language == "English" &&
                                                                      b.Pages == 60 &&
                                                                      b.Isbn == isbnFieldText &&
                                                                      b.Isbn13 == isbn13FieldText &&
                                                                      b.DeweyDecimal == deweyDecimal))).MustHaveHappened();
            A.CallTo(() => fakeView.ShowErrorDialog("Error creating book", "error")).MustHaveHappened();
            Assert.IsTrue(fakeView.SaveButtonEnabled);
            Assert.IsTrue(fakeView.CancelButtonEnabled);
        }
Пример #4
0
        public async Task SaveButtonClicked_Test_ItemWithLongTitleAlreadyExists()
        {
            // arrange
            var fakeView = A.Fake <IAddBookForm>();

            A.CallTo(() => fakeView.LongTitleFieldText).Returns("test book");
            var fakeBookRepo = A.Fake <IBookService>();

            A.CallTo(() => fakeBookRepo.ExistsWithLongTitle("test book")).Returns(true);
            var fakeTagService          = A.Fake <ITagService>();
            var fakeAuthorService       = A.Fake <IAuthorService>();
            var fakePublisherService    = A.Fake <IPublisherService>();
            MockBookPresenter presenter = new MockBookPresenter(fakeBookRepo, fakeTagService, fakeAuthorService, fakePublisherService,
                                                                fakeView, null);

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

            // assert
            A.CallTo(() => fakeView.ShowItemAlreadyExistsDialog("test book")).MustHaveHappened();
            Assert.IsTrue(fakeView.SaveButtonEnabled);
            Assert.IsTrue(fakeView.CancelButtonEnabled);
        }