Provides controllers agent
Inheritance: IControllersAgent
		public void GetStandardControllersMetaData_StandartControllerAndAll40xControllers_OnlyStandartReturned()
		{
			// Assign

			_metaStore.SetupGet(x => x.ControllersMetaData)
				.Returns(new List<IControllerMetaData>
				{
					new ControllerMetaData(null),
					new ControllerMetaData(null, null, new ControllerRole(true)),
					new ControllerMetaData(null, null, new ControllerRole(false, true)),
					new ControllerMetaData(null, null, new ControllerRole(false, false, true))
				});

			_agent = new ControllersAgent(_metaStore.Object, _routeMatcher.Object);

			// Act
			var items = _agent.GetStandardControllersMetaData().ToList();

			// Assert
			Assert.AreEqual(1, items.Count);
			Assert.IsNull(items.First().Role);
		}
		public void GetHandlerController_HaveController_ControllerMetaDataReturned()
		{
			// Assign

			_metaStore.SetupGet(x => x.ControllersMetaData).Returns(new List<IControllerMetaData>
			{
				new ControllerMetaData(null, null, new ControllerRole(false, false, true))
			});

			_agent = new ControllersAgent(_metaStore.Object, _routeMatcher.Object);

			// Act
			var metaData = _agent.GetHandlerController(HandlerControllerType.Http404Handler);

			// Assert

			Assert.IsTrue(metaData.Role.Is404Handler);
		}
		public void Initialize()
		{
			_metaStore = new Mock<IControllersMetaStore>();
			_routeMatcher = new Mock<IRouteMatcher>();
			_agent = new ControllersAgent(_metaStore.Object, _routeMatcher.Object);
		}
		public void GetHandlerController_NoController_Null()
		{
			// Assign

			_metaStore.SetupGet(x => x.ControllersMetaData).Returns(new List<IControllerMetaData>());
			_agent = new ControllersAgent(_metaStore.Object, _routeMatcher.Object);

			// Act & Assert
			Assert.IsNull(_agent.GetHandlerController(HandlerControllerType.Http404Handler));
		}