public void CanDeserializeAuthorizationCallHandlerData() { AuthorizationCallHandlerData data = new AuthorizationCallHandlerData("Authorization Handler"); data.AuthorizationProvider = "auhtorizationProvider"; data.OperationName = "operationName"; data.Order = 5; AuthorizationCallHandlerData deserialized = (AuthorizationCallHandlerData)SerializeAndDeserializeHandler(data); Assert.AreEqual(data.AuthorizationProvider, deserialized.AuthorizationProvider); Assert.AreEqual(data.OperationName, deserialized.OperationName); Assert.AreEqual(typeof(AuthorizationCallHandler), deserialized.Type); Assert.AreEqual(data.Order, deserialized.Order); }
public void CreateAuthorizationCallHandlerFromConfiguration() { PolicyInjectionSettings settings = new PolicyInjectionSettings(); PolicyData policyData = new PolicyData("policy"); AuthorizationCallHandlerData data = new AuthorizationCallHandlerData("foo", 2); policyData.MatchingRules.Add(new CustomMatchingRuleData("matchesEverything", typeof(AlwaysMatchingRule))); policyData.Handlers.Add(data); settings.Policies.Add(policyData); using (var configSource = new FileConfigurationSource("Authorization.config", false)) { IUnityContainer container = new UnityContainer().AddNewExtension<Interception>(); settings.ConfigureContainer(container, configSource); new UnityContainerConfigurator(container) .RegisterAll( configSource, (ITypeRegistrationsProvider)configSource.GetSection(SecuritySettings.SectionName)); InjectionFriendlyRuleDrivenPolicy policy = container.Resolve<InjectionFriendlyRuleDrivenPolicy>("policy"); ICallHandler handler = (policy.GetHandlersFor(new MethodImplementationInfo(null, (MethodInfo)MethodBase.GetCurrentMethod()), container)).ElementAt(0); Assert.IsNotNull(handler); Assert.AreEqual(handler.Order, data.Order); //Assert.AreSame(authorizationProvider, ((AuthorizationCallHandler)handler).AutorizationProvider); // TODO this test only checked for provider name, so it didn't fail even though the configuration source supplied didn't have the settings required to build it } }