示例#1
0
        public void WithReceiptItem_should_return_ReceiptItemSetAssertions()
        {
            var receiptItems = ReceiptItemTestData.CreateRandomReceiptItems();
            var receiptCard  = new ReceiptCard(items: receiptItems);

            var sut = new ReceiptCardAssertions(receiptCard);

            sut.WithReceiptItem().Should().BeAssignableTo <ReceiptItemSetAssertions>().And.NotBeNull();
        }
示例#2
0
        public void WithCardImage_should_return_CardImageAssertions()
        {
            var cardImage    = new CardImage();
            var receiptItems = ReceiptItemTestData.CreateReceiptItemSetWithOneItemThatHasSetProperties(image: cardImage);

            var sut = new ReceiptItemSetAssertions(receiptItems);

            sut.WithCardImage().Should().BeAssignableTo <CardImageSetAssertions>().And.NotBeNull();
        }
示例#3
0
        public void WithTapAction_should_return_CardActionAssertions()
        {
            var tap          = new CardAction();
            var receiptItems = ReceiptItemTestData.CreateReceiptItemSetWithOneItemThatHasSetProperties(tap: tap);

            var sut = new ReceiptItemSetAssertions(receiptItems);

            sut.WithTapAction().Should().BeAssignableTo <CardActionSetAssertions>().And.NotBeNull();
        }
示例#4
0
        public void WithReceiptItem_should_return_ReceiptItemSetAssertions()
        {
            var receiptItems = ReceiptItemTestData.CreateRandomReceiptItems();
            var cards        = ReceiptCardTestData.CreateReceiptCardSetWithOneCardThatHasSetProperties(items: receiptItems);

            var sut = new ReceiptCardSetAssertions(cards);

            sut.WithReceiptItem().Should().BeAssignableTo <ReceiptItemSetAssertions>().And.NotBeNull();
        }
示例#5
0
        public void TextMatching_should_pass_if_regex_exactly_matches_Text_of_at_least_1_item_regardless_of_case(string itemText, string regex)
        {
            var items = ReceiptItemTestData.CreateReceiptItemSetWithOneItemThatHasSetProperties(text: itemText);

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.TextMatching(regex);

            act.ShouldNotThrow <Exception>();
        }
示例#6
0
        public void TextMatching_should_pass_if_regex_exactly_matches_message_Text_of_one_item(string itemTextAndRegex)
        {
            var items = ReceiptItemTestData.CreateReceiptItemSetWithOneItemThatHasSetProperties(text: itemTextAndRegex);

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.TextMatching(itemTextAndRegex);

            act.ShouldNotThrow <Exception>();
        }
示例#7
0
        public void TextMatching_should_throw_ArgumentNullException_if_regex_is_null()
        {
            var items = ReceiptItemTestData.CreateRandomReceiptItems();

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.TextMatching(null);

            act.ShouldThrow <ArgumentNullException>();
        }
示例#8
0
        public void TextMatching_should_throw_ReceiptItemAssertionFailedException_when_regex_matches_no_items(string regex)
        {
            var items = ReceiptItemTestData.CreateRandomReceiptItems();

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.TextMatching(regex);

            act.ShouldThrow <ReceiptItemAssertionFailedException>();
        }
示例#9
0
        public void TextMatching_should_pass_when_using_standard_regex_features(string itemText, string regex)
        {
            var items = ReceiptItemTestData.CreateReceiptItemSetWithOneItemThatHasSetProperties(text: itemText);

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.TextMatching(regex);

            act.ShouldNotThrow <Exception>();
        }
示例#10
0
        public void TextMatching_should_throw_ArgumentNullException_if_groupMatchRegex_is_null()
        {
            IList <string> matches;

            var items = ReceiptItemTestData.CreateRandomReceiptItems();

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.TextMatching("(.*)", null, out matches);

            act.ShouldThrow <ArgumentNullException>();
        }
示例#11
0
        public void TextMatching_should_not_output_matches_when_groupMatchingRegex_does_not_match_Text_of_any_item()
        {
            IList <string> matches;

            var items = ReceiptItemTestData.CreateRandomReceiptItems();

            var sut = new ReceiptItemSetAssertions(items);

            sut.TextMatching(".*", "(non matching)", out matches);

            matches.Should().BeNull();
        }
示例#12
0
        public void SubtitleMatching_should_throw_ArgumentNullException_if_when_capturing_groups_regex_is_null()
        {
            IList <string> matches;

            var items = ReceiptItemTestData.CreateRandomReceiptItems();

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.SubtitleMatching(null, "(.*)", out matches);

            act.ShouldThrow <ArgumentNullException>();
        }
示例#13
0
        public void TextMatching_should_output_matches_when_groupMatchingRegex_matches_Text_of_any_item()
        {
            IList <string> matches;

            const string someText = "some text";
            var          items    = ReceiptItemTestData.CreateReceiptItemSetWithOneItemThatHasSetProperties(text: someText);

            var sut = new ReceiptItemSetAssertions(items);

            sut.TextMatching(someText, $"({someText})", out matches);

            matches.First().Should().Be(someText);
        }
示例#14
0
        public void Only_non_null_ReceiptItems_from_ReceiptItem_list_should_be_available_for_assertion()
        {
            var nonNullReceiptItems = ReceiptItemTestData.CreateRandomReceiptItems();
            var receiptItems        = new List <ReceiptItem> {
                null
            };

            receiptItems.AddRange(nonNullReceiptItems);

            var sut = new ReceiptItemSetAssertions(receiptItems);

            sut.ReceiptItems.ShouldBeEquivalentTo(nonNullReceiptItems);
        }
示例#15
0
        public void TextMatching_should_not_output_matches_when_regex_does_not_match_Text_of_any_items()
        {
            IList <string> matches = null;

            var items = ReceiptItemTestData.CreateRandomReceiptItems();

            var sut = new ReceiptItemSetAssertions(items);

            Action act = () => sut.TextMatching("non matching regex", "(some text)", out matches);

            act.ShouldThrow <ReceiptItemAssertionFailedException>();
            matches.Should().BeNull();
        }
示例#16
0
        public void TextMatching_should_output_multiple_matches_when_groupMatchingRegex_matches_Text_on_multiple_items()
        {
            IList <string> matches;

            var items = ReceiptItemTestData.CreateRandomReceiptItems();

            items.Add(new ReceiptItem(text: "some text"));
            items.Add(new ReceiptItem(text: "same text"));

            var sut = new ReceiptItemSetAssertions(items);

            sut.TextMatching(".*", @"(s[oa]me) (text)", out matches);

            matches.Should().Contain("some", "same", "text");
        }
示例#17
0
        public void TextMatching_should_output_multiple_matches_when_groupMatchingRegex_matches_Text_several_times_for_a_single_item()
        {
            IList <string> matches;

            const string someText = "some text";
            var          items    = ReceiptItemTestData.CreateReceiptItemSetWithOneItemThatHasSetProperties(text: someText);

            var sut = new ReceiptItemSetAssertions(items);

            const string match1 = "some";
            const string match2 = "text";

            sut.TextMatching(someText, $"({match1}) ({match2})", out matches);

            matches.Should().Contain(match1, match2);
        }