public void not_supplying_anyOf_causes_no_errors()
		{
			TypeFilter expectedFilter = new TypeFilter(ALL_OF, new List<Type>{}, NONE_OF);

			instance.AllOf(ALL_OF.ToArray()).NoneOf(NONE_OF.ToArray());
			assertMatchesTypeFilter(expectedFilter, instance.CreateTypeFilter());
		}
		public void class_not_matched_by_any()
		{
			TypeB subject = new TypeB();

			ITypeFilter filter = new TypeFilter(new List<Type>{}, new List<Type>{typeof(TypeA), typeof(IType1)}, new List<Type>{});

			Assert.That (filter.Matches(subject), Is.False);
		}
		public void class_not_excluded_by_none()
		{
			TypeA12 subject = new TypeA12();

			ITypeFilter filter = new TypeFilter(new List<Type>{}, new List<Type>{}, new List<Type>{typeof(TypeB)});

			Assert.That (filter.Matches(subject), Is.True);
		}
		public void class_matched_by_all()
		{
			TypeA12 subject = new TypeA12();

			ITypeFilter filter = new TypeFilter(new List<Type>{typeof(TypeA), typeof(IType1), typeof(IType2)}, new List<Type>{}, new List<Type>{});

			Assert.That (filter.Matches(subject), Is.True);
		}
 public void tearDown()
 {
     instance = null;
 }
 public void setUp()
 {
     instance = new TypeFilter(ALL_OF, ANY_OF, NONE_OF);
 }
		public void default_behaviour_where_nothing_is_specified()
		{
			TypeB subject = new TypeB();

			ITypeFilter filter = new TypeFilter(new List<Type>{}, new List<Type>{}, new List<Type>{});

			Assert.That (filter.Matches(subject), Is.False);
		}
		public void tearDown()
		{
			instance = null;
		}
		public void setUp()
		{
			instance = new TypeFilter(ALL_OF, ANY_OF, NONE_OF);
		}
		public void clone_returns_open_copy_when_locked()
		{
			instance.AllOf(ALL_OF.ToArray()).AnyOf(ANY_OF.ToArray());
			instance.Lock();
			TypeMatcher clone = instance.Clone();
			clone.NoneOf(NONE_OF.ToArray());
			TypeFilter expectedFilter = new TypeFilter(ALL_OF, ANY_OF, NONE_OF);
			assertMatchesTypeFilter(expectedFilter, clone.CreateTypeFilter());
		}
		public void supplying_multiple_none_values_includes_all_given_in_typeFilter()
		{

			TypeFilter expectedFilter = new TypeFilter(ALL_OF, ANY_OF, Concat(NONE_OF, NONE_OF_2));

			instance.AllOf(ALL_OF.ToArray()).AnyOf(ANY_OF.ToArray()).NoneOf(NONE_OF.ToArray()).NoneOf(NONE_OF_2.ToArray());
			assertMatchesTypeFilter(expectedFilter, instance.CreateTypeFilter());
		}
		public void supplying_all_any_and_none_populates_them_in_typeFilter()
		{

			TypeFilter expectedFilter = new TypeFilter(ALL_OF, ANY_OF, NONE_OF);

			instance.AllOf(ALL_OF.ToArray()).AnyOf(ANY_OF.ToArray()).NoneOf(NONE_OF.ToArray());

			assertMatchesTypeFilter(expectedFilter, instance.CreateTypeFilter());
		}