public void AddNullMatchersThrowsException()
        {
            var aggregateMatcher = new AggregateMatcher();

            Should.Throw <ArgumentNullException>(() =>
                                                 aggregateMatcher.Add((IEnumerable <IMatcher>)null));
        }
        public void AddSelfThrowsException()
        {
            var aggregateMatcher = new AggregateMatcher();

            Should.Throw <ArgumentException>(() =>
                                             aggregateMatcher.Add(aggregateMatcher))
            .Message.ShouldContain("circular");
        }
        public bool AggregateMatcherMatchesAnyValidMatch(string key)
        {
            var matcher = new AggregateMatcher(new IMatcher[]
            {
                new ContainsMatcher("uncheered"),
                new ContainsMatcher("teacher"),
            });

            return(matcher.IsMatch(key));
        }
        public void AddGeneralMatcherAddsTheMatcher()
        {
            var aggregateMatcher = new AggregateMatcher();

            aggregateMatcher.Add(new ContainsMatcher("abc"));

            dynamic jailBrokenMatcher = new Jailbreak <AggregateMatcher>(aggregateMatcher);
            var     count             = (int)jailBrokenMatcher._matchers.Count;

            count.ShouldBe(1);
        }
        public void AddNullMatcherSkipsAdd()
        {
            var aggregateMatcher = new AggregateMatcher();

            aggregateMatcher.Add(NullMatcher.Instance);

            dynamic jailBrokenMatcher = new Jailbreak <AggregateMatcher>(aggregateMatcher);
            var     count             = (int)jailBrokenMatcher._matchers.Count;

            count.ShouldBe(0);
        }
        public void AddMultipleMatcherAddsAllTheMatchers()
        {
            var aggregateMatcher = new AggregateMatcher();

            aggregateMatcher.Add(new IMatcher[]
            {
                new ContainsMatcher("abc"),
                new RegexMatcher("def"),
            });

            dynamic jailBrokenMatcher = new Jailbreak <AggregateMatcher>(aggregateMatcher);
            var     count             = (int)jailBrokenMatcher._matchers.Count;

            count.ShouldBe(2);
        }
        public void CtorWithMatchersInitialisedTheMatcher()
        {
            _ = new AggregateMatcher(Array.Empty <IMatcher>());

            // Nothing to assert, just make sure it doesn't break on init.
        }
        public void DefaultCtorInitialisesMatcher()
        {
            _ = new AggregateMatcher();

            // Nothing to assert, just make sure it doesn't break on init.
        }