public void ReturnNullContextWithInvalidType() { var metadataMock = new Mock <IRequestMetadata>(); var loggerMock = new Mock <ILogger>(); var context = new RuntimePolicyContext(metadataMock.Object, loggerMock.Object, "not a good context"); Assert.Null(context.GetRequestContext <DummyObjectContext>()); }
public void ReturnNullContextWithInvalidType() { var metadataMock = new Mock<IRequestMetadata>(); var loggerMock = new Mock<ILogger>(); var context = new RuntimePolicyContext(metadataMock.Object, loggerMock.Object, "not a good context"); Assert.Null(context.GetRequestContext<DummyObjectContext>()); }
public void Constuct() { var metadataMock = new Mock <IRequestMetadata>(); var loggerMock = new Mock <ILogger>(); var requestContext = new DummyObjectContext(); var context = new RuntimePolicyContext(metadataMock.Object, loggerMock.Object, requestContext); Assert.Equal(metadataMock.Object, context.RequestMetadata); Assert.Equal(loggerMock.Object, context.Logger); Assert.Equal(requestContext, context.GetRequestContext <DummyObjectContext>()); }
public void Constuct() { var metadataMock = new Mock<IRequestMetadata>(); var loggerMock = new Mock<ILogger>(); var requestContext = new DummyObjectContext(); var context = new RuntimePolicyContext(metadataMock.Object, loggerMock.Object, requestContext); Assert.Equal(metadataMock.Object, context.RequestMetadata); Assert.Equal(loggerMock.Object, context.Logger); Assert.Equal(requestContext, context.GetRequestContext<DummyObjectContext>()); }
private RuntimePolicy DetermineRuntimePolicy(RuntimeEvent runtimeEvent, RuntimePolicy maximumAllowedPolicy) { if (maximumAllowedPolicy == RuntimePolicy.Off) { return(maximumAllowedPolicy); } var frameworkProvider = Configuration.FrameworkProvider; var logger = Configuration.Logger; // only run policies for this runtimeEvent var policies = Configuration.RuntimePolicies.Where( policy => policy.ExecuteOn.HasFlag(runtimeEvent)); var policyContext = new RuntimePolicyContext(frameworkProvider.RequestMetadata, Configuration.Logger, frameworkProvider.RuntimeContext); foreach (var policy in policies) { var policyResult = RuntimePolicy.Off; try { policyResult = policy.Execute(policyContext); if (policyResult != RuntimePolicy.On) { logger.Debug("RuntimePolicy set to '{0}' by IRuntimePolicy of type '{1}' during RuntimeEvent '{2}'.", policyResult, policy.GetType(), runtimeEvent); } } catch (Exception exception) { logger.Warn("Exception when executing IRuntimePolicy of type '{0}'. RuntimePolicy is now set to 'Off'.", exception, policy.GetType()); } // Only use the lowest policy allowed for the request if (policyResult < maximumAllowedPolicy) { maximumAllowedPolicy = policyResult; } // If the policy indicates Glimpse is Off, then we stop processing any other runtime policy if (maximumAllowedPolicy == RuntimePolicy.Off) { break; } } return(maximumAllowedPolicy); }
private RuntimePolicy GetRuntimePolicy(RuntimeEvent runtimeEvent) { var frameworkProvider = Configuration.FrameworkProvider; var requestStore = frameworkProvider.HttpRequestStore; // Begin with the lowest policy for this request, or the lowest policy per config var finalResult = requestStore.Contains(Constants.RuntimePolicyKey) ? requestStore.Get <RuntimePolicy>(Constants.RuntimePolicyKey) : Configuration.DefaultRuntimePolicy; if (!finalResult.HasFlag(RuntimePolicy.Off)) { var logger = Configuration.Logger; // only run policies for this runtimeEvent, or all runtime events var policies = Configuration.RuntimePolicies.Where( policy => policy.ExecuteOn.HasFlag(runtimeEvent)); var policyContext = new RuntimePolicyContext(frameworkProvider.RequestMetadata, Configuration.Logger, frameworkProvider.RuntimeContext); foreach (var policy in policies) { var policyResult = RuntimePolicy.Off; try { policyResult = policy.Execute(policyContext); if (policyResult != RuntimePolicy.On) { logger.Debug("RuntimePolicy set to '{0}' by IRuntimePolicy of type '{1}' during RuntimeEvent '{2}'.", policyResult, policy.GetType(), runtimeEvent); } } catch (Exception exception) { logger.Warn("Exception when executing IRuntimePolicy of type '{0}'. RuntimePolicy is now set to 'Off'.", exception, policy.GetType()); } // Only use the lowest policy allowed for the request if (policyResult < finalResult) { finalResult = policyResult; } } } // store result for request requestStore.Set(Constants.RuntimePolicyKey, finalResult); return(finalResult); }
private RuntimePolicy DetermineRuntimePolicy(RuntimeEvent runtimeEvent, RuntimePolicy maximumAllowedPolicy) { if (maximumAllowedPolicy == RuntimePolicy.Off) { return maximumAllowedPolicy; } var frameworkProvider = Configuration.FrameworkProvider; var logger = Configuration.Logger; // only run policies for this runtimeEvent var policies = Configuration.RuntimePolicies.Where( policy => policy.ExecuteOn.HasFlag(runtimeEvent)); var policyContext = new RuntimePolicyContext(frameworkProvider.RequestMetadata, Configuration.Logger, frameworkProvider.RuntimeContext); foreach (var policy in policies) { var policyResult = RuntimePolicy.Off; try { policyResult = policy.Execute(policyContext); if (policyResult != RuntimePolicy.On) { logger.Debug("RuntimePolicy set to '{0}' by IRuntimePolicy of type '{1}' during RuntimeEvent '{2}'.", policyResult, policy.GetType(), runtimeEvent); } } catch (Exception exception) { logger.Warn("Exception when executing IRuntimePolicy of type '{0}'. RuntimePolicy is now set to 'Off'.", exception, policy.GetType()); } // Only use the lowest policy allowed for the request if (policyResult < maximumAllowedPolicy) { maximumAllowedPolicy = policyResult; } // If the policy indicates Glimpse is Off, then we stop processing any other runtime policy if (maximumAllowedPolicy == RuntimePolicy.Off) { break; } } return maximumAllowedPolicy; }
private RuntimePolicy GetRuntimePolicy(RuntimeEvent runtimeEvent) { var frameworkProvider = Configuration.FrameworkProvider; var requestStore = frameworkProvider.HttpRequestStore; // Begin with the lowest policy for this request, or the lowest policy per config var finalResult = requestStore.Contains(Constants.RuntimePolicyKey) ? requestStore.Get<RuntimePolicy>(Constants.RuntimePolicyKey) : Configuration.DefaultRuntimePolicy; if (!finalResult.HasFlag(RuntimePolicy.Off)) { var logger = Configuration.Logger; // only run policies for this runtimeEvent, or all runtime events var policies = Configuration.RuntimePolicies.Where( policy => policy.ExecuteOn.HasFlag(runtimeEvent)); var policyContext = new RuntimePolicyContext(frameworkProvider.RequestMetadata, Configuration.Logger, frameworkProvider.RuntimeContext); foreach (var policy in policies) { var policyResult = RuntimePolicy.Off; try { policyResult = policy.Execute(policyContext); if (policyResult != RuntimePolicy.On) { logger.Debug("RuntimePolicy set to '{0}' by IRuntimePolicy of type '{1}' during RuntimeEvent '{2}'.", policyResult, policy.GetType(), runtimeEvent); } } catch (Exception exception) { logger.Warn("Exception when executing IRuntimePolicy of type '{0}'. RuntimePolicy is now set to 'Off'.", exception, policy.GetType()); } // Only use the lowest policy allowed for the request if (policyResult < finalResult) { finalResult = policyResult; } } } // store result for request requestStore.Set(Constants.RuntimePolicyKey, finalResult); return finalResult; }