public void GetNonGenericMessageCriteriaShouldReturnADoubleGenericAdapterIfTheProviderTypeIsAmbiguousButMatchesADoubleGenericRule(FailureMessageUsageCriteriaFactory sut,
                                                                                                                                          AmbiguousGenericCriteria criteria)
        {
            var providerInfo = new TestingMessageProviderInfo(criteria);

            Assert.That(() => sut.GetNonGenericMessageCriteria(providerInfo, typeof(IRule <string, int>)), Is.InstanceOf <FailureMessageCriteriaAdapter <string, int> >());
        }
        public void GetNonGenericMessageCriteriaShouldReturnTheSameInstanceIfItImplementsTheNonGenericCriteriaInterface(FailureMessageUsageCriteriaFactory sut,
                                                                                                                        NonGenericCriteria criteria)
        {
            var providerInfo = new TestingMessageProviderInfo(criteria);

            Assert.That(() => sut.GetNonGenericMessageCriteria(providerInfo, typeof(IRule <string, int>)), Is.SameAs(criteria));
        }
        public void GetNonGenericMessageCriteriaShouldReturnAUniversalMatchForAProviderTypeWhichHasNoMatchingCriteriaInterface(FailureMessageUsageCriteriaFactory sut,
                                                                                                                               TwoGenericCriteria criteria)
        {
            var providerInfo = new TestingMessageProviderInfo(criteria);

            Assert.That(() => sut.GetNonGenericMessageCriteria(providerInfo, typeof(IRule <string, bool>)), Is.InstanceOf <AllowAllUsageCriteriaProvider>());
        }
        public void GetNonGenericMessageCriteriaShouldReturnASingleGenericAdapterForAProviderTypeWhichMatchesTheFirstTypeOfADoubleGenericRule(FailureMessageUsageCriteriaFactory sut,
                                                                                                                                              OneGenericCriteria criteria)
        {
            var providerInfo = new TestingMessageProviderInfo(criteria);

            Assert.That(() => sut.GetNonGenericMessageCriteria(providerInfo, typeof(IRule <string, int>)), Is.InstanceOf <FailureMessageCriteriaAdapter <string> >());
        }