Exemplo n.º 1
0
        public void GetItems_UseResultObject()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UseResultObject = true
            });
            var dsSettings = Options.Create(new DataStoreSettings());

            var controller = new DynamicController(ds, apiSettings, dsSettings);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            controller.ControllerContext.HttpContext.Request.QueryString = new QueryString("");

            var result = controller.GetItems("families", 4, 10) as OkObjectResult;

            dynamic resultObject = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(result.Value));

            Assert.Equal(10, resultObject.results.Count);
            Assert.Equal(4, resultObject.skip.Value);
            Assert.Equal(10, resultObject.take.Value);
            Assert.Equal(20, resultObject.count.Value);

            UTHelpers.Down(filePath);
        }
Exemplo n.º 2
0
        public void GetItems_UseResultObject_offsetlimit()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UseResultObject = true
            });

            var controller = new DynamicController(ds, apiSettings);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            controller.ControllerContext.HttpContext.Request.QueryString = new QueryString("?offset=5&limit=12");

            var result = controller.GetItems("families") as OkObjectResult;

            var resultObject = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(result.Value));

            Assert.Equal(12, resultObject.results.Count);
            Assert.Equal(5, resultObject.offset.Value);
            Assert.Equal(12, resultObject.limit.Value);
            Assert.Equal(20, resultObject.count.Value);

            UTHelpers.Down(filePath);
        }
Exemplo n.º 3
0
        public async Task PutItem_Upsert()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UpsertOnPut = true
            });

            var controller = new DynamicController(ds, apiSettings);

            var result = await controller.ReplaceItem("my_test", "2", JToken.Parse("{ 'id': 2, 'name': 'Raymond', 'age': 32 }"));

            Assert.IsType <NoContentResult>(result);

            var itemResult = controller.GetItem("my_test", "2");

            Assert.IsType <OkObjectResult>(itemResult);

            var     okObjectResult = itemResult as OkObjectResult;
            dynamic item           = okObjectResult.Value as ExpandoObject;

            Assert.Equal("Raymond", item.name);

            UTHelpers.Down(filePath);
        }
Exemplo n.º 4
0
        public void GenerateContextShouldReturnServerLevelActionIfValidServerAction()
        {
            var controller = new DynamicController();

            try
            {
                Manager.Reset();
                Manager.Current = new Settings();
                var server        = "theServer";
                var defaultAction = "defaultAction";
                AppendReportLevel(
                    ActionHandlerTargets.Server,
                    new Report
                {
                    ActionName = defaultAction,
                    IsDefault  = true
                });
                var context = controller.GenerateContext(server, defaultAction, string.Empty, string.Empty);
                Assert.That(context.Server, Is.EqualTo(server));
                Assert.That(context.Report, Is.EqualTo(defaultAction));
                Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Server));
            }
            finally
            {
                Manager.Reset();
            }
        }
Exemplo n.º 5
0
        public void GenerateContextShouldReturnBuildLevelActionIfProjectIsNotAnAction()
        {
            var controller = new DynamicController();

            try
            {
                Manager.Reset();
                Manager.Current = new Settings();
                var defaultAction = "defaultAction";
                var server        = "theServer";
                var project       = "theProject";
                var build         = "aBuild";
                AppendReportLevel(
                    ActionHandlerTargets.Build,
                    new Report
                {
                    ActionName = defaultAction,
                    IsDefault  = true
                });
                var context = controller.GenerateContext(server, project, build, string.Empty);
                Assert.That(context.Server, Is.EqualTo(server));
                Assert.That(context.Project, Is.EqualTo(project));
                Assert.That(context.Build, Is.EqualTo(build));
                Assert.That(context.Report, Is.EqualTo(defaultAction));
                Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Build));
            }
            finally
            {
                Manager.Reset();
            }
        }
Exemplo n.º 6
0
        public void GetItems_EmptyCollection()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UseResultObject = true
            });
            var dsSettings = Options.Create(new DataStoreSettings());

            var controller = new DynamicController(ds, apiSettings, dsSettings);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var result = controller.GetItems("empty_collection") as OkObjectResult;

            var resultObject = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(result.Value));

            Assert.Equal(0, resultObject.results.Count);
            Assert.Equal(0, resultObject.skip.Value);
            Assert.Equal(512, resultObject.take.Value);
            Assert.Equal(0, resultObject.count.Value);

            UTHelpers.Down(filePath);
        }
        public async Task LocationSuggest()
        {
            var query       = "e15 1";
            var mockApi     = new Mock <ISearchAndCompareApi>();
            var geocoderApi = new Mock <IGeocoder>();

            geocoderApi.Setup(x => x.SuggestLocationsAsync(query))
            .ReturnsAsync(new List <string>()
            {
                query
            });

            var controller = new DynamicController(mockApi.Object, geocoderApi.Object, TelemetryClientHelper.GetMocked());

            var res = await controller.LocationSuggest(query);

            var jsonResult = res as JsonResult;

            Assert.IsNotNull(jsonResult);

            Assert.IsNotNull(jsonResult.Value);
            var jsonResultValue = jsonResult.Value as List <string>;

            Assert.IsNotNull(jsonResultValue);
            CollectionAssert.IsNotEmpty(jsonResultValue);
            Assert.AreEqual(query, jsonResultValue[0]);
            Assert.AreEqual(1, jsonResultValue.Count);
        }
Exemplo n.º 8
0
        public void GenerateContextShouldReturnDefaultRootActionIfNothingSet()
        {
            var controller = new DynamicController();

            try
            {
                Manager.Reset();
                Manager.Current = new Settings();
                var defaultAction = "defaultAction";
                AppendReportLevel(
                    ActionHandlerTargets.Root,
                    new Report
                {
                    ActionName = defaultAction,
                    IsDefault  = true
                });
                var context = controller.GenerateContext(string.Empty, string.Empty, string.Empty, string.Empty);
                Assert.That(context.Report, Is.EqualTo(defaultAction));
                Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Root));
            }
            finally
            {
                Manager.Reset();
            }
        }
Exemplo n.º 9
0
        public void GetNested_ParentsSingle()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings());

            var controller = new DynamicController(ds, apiSettings);

            var result = controller.GetNested("families", 1, "parents/1") as OkObjectResult;

            Assert.Equal("Kim", ((dynamic)result.Value).name);

            UTHelpers.Down(filePath);
        }
        public void GetNested_Single_BadRequest()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings());

            var controller = new DynamicController(ds, apiSettings);

            var result = controller.GetNested("configuration", 0, "ip");

            Assert.IsType <BadRequestResult>(result);

            UTHelpers.Down(filePath);
        }
Exemplo n.º 11
0
        public void GetNested_ParentsList()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings());

            var controller = new DynamicController(ds, apiSettings);

            var result = controller.GetNested("families", 1, "parents") as OkObjectResult;

            Assert.Equal(2, ((IEnumerable <dynamic>)result.Value).Count());

            UTHelpers.Down(filePath);
        }
Exemplo n.º 12
0
        public void GetCollections()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings());

            var controller = new DynamicController(ds, apiSettings);

            var collections = controller.GetKeys();

            Assert.Equal(3, collections.Count());

            UTHelpers.Down(filePath);
        }
Exemplo n.º 13
0
 public void RetrieveHandlerReturnsNullIfNotFound()
 {
     try
     {
         var expected = InitialiseMockHandler("testAction");
         ActionHandlerFactory.Default.ActionHandlers.Add(expected);
         var controller = new DynamicController();
         var actual     = controller.RetrieveHandler("garbage");
         Assert.That(actual, Is.Null);
     }
     finally
     {
         ActionHandlerFactory.Reset();
     }
 }
Exemplo n.º 14
0
        public void GenerateContextReturnsEverythingIfEverythingIsSet()
        {
            var controller = new DynamicController();
            var server     = "serverName";
            var project    = "projectName";
            var build      = "buildName";
            var report     = "reportName";
            var context    = controller.GenerateContext(server, project, build, report);

            Assert.That(context.Server, Is.EqualTo(server));
            Assert.That(context.Project, Is.EqualTo(project));
            Assert.That(context.Build, Is.EqualTo(build));
            Assert.That(context.Report, Is.EqualTo(report));
            Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Build));
        }
        public async Task AddItem_Single_Conflict()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings());

            var controller = new DynamicController(ds, apiSettings);

            var item = new { value = "hello" };

            var result = await controller.AddNewItem("configuration", JToken.FromObject(item));

            Assert.IsType <ConflictResult>(result);

            UTHelpers.Down(filePath);
        }
Exemplo n.º 16
0
        public async Task PutItem_NoUpsert()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UpsertOnPut = false
            });

            var controller = new DynamicController(ds, apiSettings);

            var result = await controller.ReplaceItem("my_test", "2", JToken.Parse("{ 'id': 2, 'name': 'Raymond', 'age': 32 }"));

            Assert.IsType <NotFoundResult>(result);

            UTHelpers.Down(filePath);
        }
        public void GetItem_Single_BadRequest()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UpsertOnPut = true
            });

            var controller = new DynamicController(ds, apiSettings);

            var itemResult = controller.GetItem("configuration", "0");

            Assert.IsType <BadRequestResult>(itemResult);

            UTHelpers.Down(filePath);
        }
 public void RetrieveHandlerIgnoresCase()
 {
     var actionName = "testAction";
     try
     {
         var expected = InitialiseMockHandler(actionName);
         ActionHandlerFactory.Default.ActionHandlers.Add(expected);
         var controller = new DynamicController();
         var actual = controller.RetrieveHandler(actionName.ToUpperInvariant());
         Assert.That(actual, Is.SameAs(expected));
     }
     finally
     {
         ActionHandlerFactory.Reset();
     }
 }
Exemplo n.º 19
0
        public void GenerateContextFailsIfNoDefaultRootLevelAction()
        {
            var controller = new DynamicController();

            try
            {
                Manager.Reset();
                Manager.Current = new Settings();
                var context = controller.GenerateContext(string.Empty, string.Empty, string.Empty, string.Empty);
                Assert.That(context.Report, Is.EqualTo("!!unknownAction!!"));
                Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Root));
            }
            finally
            {
                Manager.Reset();
            }
        }
Exemplo n.º 20
0
        public void RetrieveHandlerIgnoresCase()
        {
            var actionName = "testAction";

            try
            {
                var expected = InitialiseMockHandler(actionName);
                ActionHandlerFactory.Default.ActionHandlers.Add(expected);
                var controller = new DynamicController();
                var actual     = controller.RetrieveHandler(actionName.ToUpperInvariant());
                Assert.That(actual, Is.SameAs(expected));
            }
            finally
            {
                ActionHandlerFactory.Reset();
            }
        }
Exemplo n.º 21
0
        public void IndexLogsEvents()
        {
            // Initialise the configuration
            var config = new LoggingConfiguration();
            var target = new MemoryTarget
            {
                Layout = "${Logger}|${Level}|${Message}"
            };

            config.AddTarget("unitTesting", target);
            var rule = new LoggingRule("*", LogLevel.Debug, target);

            config.LoggingRules.Add(rule);

            // Generate the logger
            var factory = new LogFactory
            {
                Configuration = config
            };
            var logger = factory.GetLogger(typeof(DynamicController).FullName);

            try
            {
                DynamicController.OverrideLogger(logger);
                var controller = new DynamicController();

                // Resolve an action that doesn't exist - we are only interested that logging is actually workig
                controller.Index("blankServerName", "blankProjectName", "blankBuildName", "nowherenonsenseaction");

                var expectedMessages = new[]
                {
                    MakeMessage("Dynamically resolving request", LogLevel.Debug),
                    MakeMessage("Generating request context", LogLevel.Debug),
                    MakeMessage("Action is a build level report", LogLevel.Debug),
                    MakeMessage("Retrieving action handler for nowherenonsenseaction", LogLevel.Debug),
                    MakeMessage("Unable to find action handler for nowherenonsenseaction", LogLevel.Info),
                    MakeMessage("Generating error message", LogLevel.Debug)
                };
                Assert.That(target.Logs.ToArray(), Is.EqualTo(expectedMessages));
            }
            finally
            {
                DynamicController.ResetLogger();
            }
        }
Exemplo n.º 22
0
        public void GetItems_FriendsWithQueryString()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings());

            var controller = new DynamicController(ds, apiSettings);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            controller.ControllerContext.HttpContext.Request.QueryString = new QueryString("?children.friends.name=Castillo");

            var result = controller.GetItems("families") as OkObjectResult;

            Assert.Equal(2, ((IEnumerable <dynamic>)result.Value).Count());

            UTHelpers.Down(filePath);
        }
Exemplo n.º 23
0
        public void GetItems_FavouriteMoveiWithQueryString()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings());

            var controller = new DynamicController(ds, apiSettings);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            controller.ControllerContext.HttpContext.Request.QueryString = new QueryString("?parents.favouriteMovie=Predator");

            // NOTE: Can't but skip and take to querystring with tests
            var result = controller.GetItems("families", 0, 100) as OkObjectResult;

            Assert.Equal(11, ((IEnumerable <dynamic>)result.Value).Count());

            UTHelpers.Down(filePath);
        }
        public void IndexLogsEvents()
        {
            // Initialise the configuration
            var config = new LoggingConfiguration();
            var target = new MemoryTarget
                {
                    Layout = "${Logger}|${Level}|${Message}"
                };
            config.AddTarget("unitTesting", target);
            var rule = new LoggingRule("*", LogLevel.Debug, target);
            config.LoggingRules.Add(rule);

            // Generate the logger
            var factory = new LogFactory
                {
                    Configuration = config
                };
            var logger = factory.GetLogger(typeof(DynamicController).FullName);
            try
            {
                DynamicController.OverrideLogger(logger);
                var controller = new DynamicController();

                // Resolve an action that doesn't exist - we are only interested that logging is actually workig
                controller.Index("blankServerName", "blankProjectName", "blankBuildName", "nowherenonsenseaction");

                var expectedMessages = new[] 
                    {
                        MakeMessage("Dynamically resolving request", LogLevel.Debug),
                        MakeMessage("Generating request context", LogLevel.Debug),
                        MakeMessage("Action is a build level report", LogLevel.Debug),
                        MakeMessage("Retrieving action handler for nowherenonsenseaction", LogLevel.Debug),
                        MakeMessage("Unable to find action handler for nowherenonsenseaction", LogLevel.Info),
                        MakeMessage("Generating error message", LogLevel.Debug)
                    };
                Assert.That(target.Logs.ToArray(), Is.EqualTo(expectedMessages));
            }
            finally
            {
                DynamicController.ResetLogger();
            }
        }
Exemplo n.º 25
0
        protected void Application_Error(object sender, EventArgs e)
        {
            var error = Server.GetLastError();
            var code  = (error is HttpException) ? (error as HttpException).GetHttpCode() : 500;

            if (code == 404)
            {
                var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;

                string controllerName = null;
                string actionName     = null;
                string id             = null;

                if (routeValues != null)
                {
                    if (routeValues.ContainsKey("action"))
                    {
                        actionName = routeValues["action"].ToString();
                    }
                    if (routeValues.ContainsKey("controller"))
                    {
                        controllerName = routeValues["controller"].ToString();
                    }
                    if (routeValues.ContainsKey("id"))
                    {
                        id = routeValues["id"].ToString();
                    }
                }

                var routeData = new RouteData();
                routeData.Values.Add("controller", "Dynamic");
                routeData.Values.Add("action", actionName);
                routeData.Values.Add("entity", controllerName);
                routeData.Values.Add("entityId", id);

                IController errorController = new DynamicController();

                errorController.Execute(new RequestContext(new HttpContextWrapper(System.Web.HttpContext.Current), routeData));
                Response.End();
            }
        }
        public void GetItems_Single()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UpsertOnPut = true
            });

            var controller = new DynamicController(ds, apiSettings);

            var itemResult = controller.GetItems("configuration");

            Assert.IsType <OkObjectResult>(itemResult);

            var     okObjectResult = itemResult as OkObjectResult;
            dynamic item           = okObjectResult.Value as ExpandoObject;

            Assert.Equal("abba", item.password);

            UTHelpers.Down(filePath);
        }
Exemplo n.º 27
0
        public async Task PutItem_Upsert_Id_String()
        {
            var filePath    = UTHelpers.Up();
            var ds          = new DataStore(filePath);
            var apiSettings = Options.Create(new ApiSettings {
                UpsertOnPut = true
            });

            var controller = new DynamicController(ds, apiSettings);

            var result = await controller.ReplaceItem("my_test_string", "acdc", JToken.Parse("{ 'id': 2, 'text': 'Hello' }")) as NoContentResult;

            Assert.Equal(204, result.StatusCode);

            var itemResult = controller.GetItem("my_test_string", "acdc") as OkObjectResult;

            dynamic item = itemResult.Value as ExpandoObject;

            Assert.Equal("acdc", item.id);
            Assert.Equal("Hello", item.text);

            UTHelpers.Down(filePath);
        }
Exemplo n.º 28
0
        public virtual void ConnectComponents(IDomain domain, IDynamic currentDynamic, IReadOnlyCollection <IComponent> components)
        {
            double WidthValue;

            if (Width != null && !ParserDomain.TryParseDouble(Width, out WidthValue))
            {
                throw new ParsingException(193, Source, "Invalid width.");
            }

            double HeightValue;

            if (Height != null && !ParserDomain.TryParseDouble(Height, out HeightValue))
            {
                throw new ParsingException(194, Source, "Invalid height.");
            }

            double SingleMargin;

            if (Margin != null && !ParserDomain.TryParseDouble(Margin, out SingleMargin))
            {
                string[] ThicknessMargin = Margin.Split(',');
                int      i;

                for (i = 0; i < 4 && i < ThicknessMargin.Length; i++)
                {
                    if (!ParserDomain.TryParseDouble(ThicknessMargin[i], out SingleMargin))
                    {
                        break;
                    }
                }

                if (i < 4)
                {
                    throw new ParsingException(195, Source, "Invalid margin.");
                }
            }

            if (HorizontalAlignment != null &&
                HorizontalAlignment != Windows.UI.Xaml.HorizontalAlignment.Left.ToString() &&
                HorizontalAlignment != Windows.UI.Xaml.HorizontalAlignment.Center.ToString() &&
                HorizontalAlignment != Windows.UI.Xaml.HorizontalAlignment.Right.ToString() &&
                HorizontalAlignment != Windows.UI.Xaml.HorizontalAlignment.Stretch.ToString())
            {
                throw new ParsingException(196, Source, "Invalid horizontal alignment.");
            }

            if (VerticalAlignment != null &&
                VerticalAlignment != Windows.UI.Xaml.VerticalAlignment.Top.ToString() &&
                VerticalAlignment != Windows.UI.Xaml.VerticalAlignment.Center.ToString() &&
                VerticalAlignment != Windows.UI.Xaml.VerticalAlignment.Bottom.ToString() &&
                VerticalAlignment != Windows.UI.Xaml.VerticalAlignment.Stretch.ToString())
            {
                throw new ParsingException(197, Source, "Invalid vertical alignment.");
            }

            if (DynamicEnable != null && DynamicController == null)
            {
                foreach (IDynamicProperty Item in currentDynamic.Properties)
                {
                    if (DynamicEnable == Item.Source.Name)
                    {
                        DynamicController = Item;
                        break;
                    }
                }

                if (DynamicController == null)
                {
                    throw new ParsingException(198, Source, $"Dynamic property '{DynamicEnable}' not found in '{currentDynamic.Name}'.");
                }
                else if (DynamicController.Result != DynamicOperationResults.Boolean)
                {
                    throw new ParsingException(199, Source, $"Dynamic property '{DynamicEnable}' is not boolean.");
                }

                DynamicController.SetIsUsed();
            }
        }
 public void GenerateContextReturnsEverythingIfEverythingIsSet()
 {
     var controller = new DynamicController();
     var server = "serverName";
     var project = "projectName";
     var build = "buildName";
     var report = "reportName";
     var context = controller.GenerateContext(server, project, build, report);
     Assert.That(context.Server, Is.EqualTo(server));
     Assert.That(context.Project, Is.EqualTo(project));
     Assert.That(context.Build, Is.EqualTo(build));
     Assert.That(context.Report, Is.EqualTo(report));
     Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Build));
 }
 public void GenerateContextShouldReturnDefaultRootActionIfNothingSet()
 {
     var controller = new DynamicController();
     try
     {
         Manager.Reset();
         Manager.Current = new Settings();
         var defaultAction = "defaultAction";
         AppendReportLevel(
             ActionHandlerTargets.Root,
             new Report
                 {
                     ActionName = defaultAction,
                     IsDefault = true
                 });
         var context = controller.GenerateContext(string.Empty, string.Empty, string.Empty, string.Empty);
         Assert.That(context.Report, Is.EqualTo(defaultAction));
         Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Root));
     }
     finally
     {
         Manager.Reset();
     }
 }
 public void GenerateContextFailsIfNoDefaultRootLevelAction()
 {
     var controller = new DynamicController();
     try
     {
         Manager.Reset();
         Manager.Current = new Settings();
         var context = controller.GenerateContext(string.Empty, string.Empty, string.Empty, string.Empty);
         Assert.That(context.Report, Is.EqualTo("!!unknownAction!!"));
         Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Root));
     }
     finally
     {
         Manager.Reset();
     }
 }
 public void GenerateContextShouldReturnServerLevelActionIfValidServerAction()
 {
     var controller = new DynamicController();
     try
     {
         Manager.Reset();
         Manager.Current = new Settings();
         var server = "theServer";
         var defaultAction = "defaultAction";
         AppendReportLevel(
             ActionHandlerTargets.Server,
             new Report
             {
                 ActionName = defaultAction,
                 IsDefault = true
             });
         var context = controller.GenerateContext(server, defaultAction, string.Empty, string.Empty);
         Assert.That(context.Server, Is.EqualTo(server));
         Assert.That(context.Report, Is.EqualTo(defaultAction));
         Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Server));
     }
     finally
     {
         Manager.Reset();
     }
 }
 public void GenerateContextShouldReturnBuildLevelActionIfProjectIsNotAnAction()
 {
     var controller = new DynamicController();
     try
     {
         Manager.Reset();
         Manager.Current = new Settings();
         var defaultAction = "defaultAction";
         var server = "theServer";
         var project = "theProject";
         var build = "aBuild";
         AppendReportLevel(
             ActionHandlerTargets.Build,
             new Report
             {
                 ActionName = defaultAction,
                 IsDefault = true
             });
         var context = controller.GenerateContext(server, project, build, string.Empty);
         Assert.That(context.Server, Is.EqualTo(server));
         Assert.That(context.Project, Is.EqualTo(project));
         Assert.That(context.Build, Is.EqualTo(build));
         Assert.That(context.Report, Is.EqualTo(defaultAction));
         Assert.That(context.Level, Is.EqualTo(ActionHandlerTargets.Build));
     }
     finally
     {
         Manager.Reset();
     }
 }
 public void RetrieveHandlerReturnsNullIfNotFound()
 {
     try
     {
         var expected = InitialiseMockHandler("testAction");
         ActionHandlerFactory.Default.ActionHandlers.Add(expected);
         var controller = new DynamicController();
         var actual = controller.RetrieveHandler("garbage");
         Assert.That(actual, Is.Null);
     }
     finally
     {
         ActionHandlerFactory.Reset();
     }
 }