public void SetUp()
		{
			logger = new Mock<ILogger>();
			handler = new Mock<IMediatorViewHandler>();

			TypeMatcher matcher = new TypeMatcher().AllOf(typeof(SupportView));
			filter = matcher.CreateTypeFilter();
			mapper = new MediatorMapper(matcher.CreateTypeFilter(), handler.Object, logger.Object);
		}
        public void throws_TypeMatcherError_if_conditions_empty_and_filter_requested()
        {
            TypeMatcher emptyInstance = new TypeMatcher();

            emptyInstance.AllOf(EMPTY_CLASS_VECTOR.ToArray()).AnyOf(EMPTY_CLASS_VECTOR.ToArray()).NoneOf(EMPTY_CLASS_VECTOR.ToArray());

            emptyInstance.CreateTypeFilter();
        }
        public void clone_returns_open_copy_when_not_locked()
        {
            instance.AllOf(ALL_OF.ToArray()).AnyOf(ANY_OF.ToArray());
            TypeMatcher clone = instance.Clone();

            clone.NoneOf(NONE_OF.ToArray());
            TypeFilter expectedFilter = new TypeFilter(ALL_OF, ANY_OF, NONE_OF);

            assertMatchesTypeFilter(expectedFilter, clone.CreateTypeFilter());
        }
		/*============================================================================*/
		/* Private Functions                                                          */
		/*============================================================================*/

		private ITypeFilter CreateTypeFilter(Type[] allOf, Type[] anyOf = null, Type[] noneOf = null)
		{
			TypeMatcher matcher = new TypeMatcher();
			if (allOf != null)
				matcher.AllOf(allOf);
			if (anyOf != null)
				matcher.AnyOf(anyOf);
			if (noneOf != null)
				matcher.NoneOf(noneOf);

			return matcher.CreateTypeFilter();
		}
        public void not_supplying_allOf_causes_no_errors()
        {
            TypeFilter expectedFilter = new TypeFilter(new List <Type> {
            }, ANY_OF, NONE_OF);

            instance.AnyOf(ANY_OF.ToArray()).NoneOf(NONE_OF.ToArray());
            assertMatchesTypeFilter(expectedFilter, instance.CreateTypeFilter());
        }
        public void throws_TypeMatcherError_if_empty_and_filter_requested()
        {
            TypeMatcher emptyInstance = new TypeMatcher();

            emptyInstance.CreateTypeFilter();
        }
		public void throws_TypeMatcherError_if_empty_and_filter_requested()
		{
			TypeMatcher emptyInstance = new TypeMatcher();
			emptyInstance.CreateTypeFilter();
		}
		public void throws_TypeMatcherError_if_conditions_empty_and_filter_requested()
		{
			TypeMatcher emptyInstance = new TypeMatcher();
			emptyInstance.AllOf(EMPTY_CLASS_VECTOR.ToArray()).AnyOf(EMPTY_CLASS_VECTOR.ToArray()).NoneOf(EMPTY_CLASS_VECTOR.ToArray());

			emptyInstance.CreateTypeFilter();
		}