public void TestRegisterResolveReleaseRoute()
        {
            IRoutingService <string> routingService = _erector.Container.Resolve <IRoutingService <string> >();
            string          destinationRoute        = "123.789";
            IRoute <string> iRoute = _erector.Container.Resolve <IRoute <string> >();

            iRoute.Route = destinationRoute;
            iRoute.RegisterRouteHandler = (message) => { };
            bool            registerRoute = false;
            Action <string> resolveRoute  = null;
            bool            releaseRoute  = false;

            //RoutingTable Exceptions
            routingService.RoutingTable = null;
            try
            {
                registerRoute = routingService.RegisterRoute(iRoute);
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual(ex.Message, routingService.ExceptionMessage_RoutingTableCannotBeNull);
            }
            try
            {
                resolveRoute = routingService.ResolveRoute(destinationRoute);
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual(ex.Message, routingService.ExceptionMessage_RoutingTableCannotBeNull);
            }
            try
            {
                releaseRoute = routingService.ReleaseRoute(iRoute);
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual(ex.Message, routingService.ExceptionMessage_RoutingTableCannotBeNull);
            }


            routingService.RoutingTable = GetMockedRoutingTable <string>();
            //Register
            try
            {
                registerRoute = routingService.RegisterRoute(null);
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual(ex.Message, routingService.ExceptionMessage_IRouteCannotBeNull);
            }
            registerRoute = routingService.RegisterRoute(iRoute);
            Assert.IsTrue(registerRoute);

            //Resolve
            try
            {
                resolveRoute = routingService.ResolveRoute(String.Empty);
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual(ex.Message, routingService.ExceptionMessage_RouteCannotBeNullOrEmpty);
            }
            resolveRoute = routingService.ResolveRoute(destinationRoute);
            Assert.IsNotNull(resolveRoute);

            //Release
            try
            {
                releaseRoute = routingService.ReleaseRoute(null);
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual(ex.Message, routingService.ExceptionMessage_IRouteCannotBeNull);
            }
            releaseRoute = routingService.ReleaseRoute(iRoute);
            Assert.IsTrue(releaseRoute);
        }