public void Create_Mediator_Instantiates_Mediator_For_View_When_Mapped()
		{
			instance.Map(typeof(SupportView)).ToProcess(new MediatorCreator(typeof(SupportMediator)));

			SupportView objA = new SupportView();
			instance.HandleView(objA, objA.GetType());
			objA.AddThisView();

			string[] expectedNotifications = new string[1] { "SupportMediator" };
			Assert.That (expectedNotifications, Is.EquivalentTo (mediatorWatcher.Notifications));
		}
		public void RunAllUnprocessors_Runs_All_Unprocessors_For_All_Views()
		{
			TrackingProcessor trackingProcessor2 = new TrackingProcessor();

			SupportView view = new SupportView();
			ObjectWhichExtendsSupportView viewA = new ObjectWhichExtendsSupportView();

			ViewProcessorMapping mapping = new ViewProcessorMapping(new TypeMatcher().AllOf(view.GetType()).CreateTypeFilter(), trackingProcessor);
			ViewProcessorMapping mappingA = new ViewProcessorMapping(new TypeMatcher().AllOf(viewA.GetType()).CreateTypeFilter(), trackingProcessor2);

			viewProcessorFactory.RunProcessors(view, view.GetType(), new ViewProcessorMapping[1] {mapping});
			viewProcessorFactory.RunProcessors(viewA, viewA.GetType(), new ViewProcessorMapping[2] {mapping, mappingA});

			viewProcessorFactory.RunAllUnprocessors();

			Assert.That (trackingProcessor.UnprocessedViews, Is.EquivalentTo (new object[2]{ view, viewA }), "trackingProcessor unprocessed all views");
			Assert.That (trackingProcessor2.UnprocessedViews, Is.EquivalentTo (new object[1]{ viewA }), "trackingProcessor2 unprocessed all views");
		}