/// <summary> /// Executes the code to be exercised for the scenario. /// </summary> protected override void Act() { Resource resource = CreateStudentResource(); // Create the builder context var hqlBuilderContext = new HqlBuilderContext( new StringBuilder(), new StringBuilder(), new StringBuilder(), new StringBuilder()); // Create the processor context var processorContext = new CompositeDefinitionProcessorContext( null, null, new XElement("BaseResource"), resource, null, null, null, int.MinValue, null); SystemUnderTest.TryIncludeResource(processorContext, hqlBuilderContext); }
/// <summary> /// Prepares the state of the scenario (creating stubs, test data, etc.). /// </summary> protected override void Arrange() { Given <IEdFiAuthorizationProvider>( new FakeAuthorizationProvider( SuppliedFilterName, SuppliedParameterName, SuppliedParameterValue)); var suppliedFilterText = $"TheField = :{SuppliedParameterName}"; A.CallTo(() => Given <INHibernateFilterTextProvider>() .TryGetHqlFilterText( A <Type> .Ignored, A <string> .Ignored, out suppliedFilterText)) .Returns(true); Supplied("ResourceUriValue", "uri://some-value"); A.CallTo(() => Given <IResourceClaimUriProvider>() .GetResourceClaimUris(A <Resource> .Ignored)) .Returns(new[] { Supplied <string>("ResourceUriValue") }); var claimsIdentityProvider = new ClaimsIdentityProvider( new ApiKeyContextProvider(new CallContextStorage()), new StubSecurityRepository()); var apiClientDetails = new ApiClientDetails { ApiKey = Guid.NewGuid() .ToString("n"), ApplicationId = 999, ClaimSetName = "SomeClaimSet", NamespacePrefixes = new List <string> { "Namespace" }, EducationOrganizationIds = new List <int> { 123, 234 } }; var claimsIdentity = claimsIdentityProvider.GetClaimsIdentity( apiClientDetails.EducationOrganizationIds, apiClientDetails.ClaimSetName, apiClientDetails.NamespacePrefixes, apiClientDetails.Profiles.ToList()); _expectedClaimsPrincipal = new ClaimsPrincipal(claimsIdentity); ClaimsPrincipal.ClaimsPrincipalSelector = () => _expectedClaimsPrincipal; Resource resource = CreateStudentResource(); // Create the builder context _hqlBuilderContext = new HqlBuilderContext( new StringBuilder(), new StringBuilder(), new StringBuilder(), new StringBuilder(), new Dictionary <string, object>(), null, 0, new Dictionary <string, CompositeSpecificationParameter>(), new Dictionary <string, object>(StringComparer.InvariantCultureIgnoreCase), new Dictionary <string, string>(StringComparer.InvariantCultureIgnoreCase), new AliasGenerator()); // Create the processor context _processorContext = new CompositeDefinitionProcessorContext( null, null, new XElement("BaseResource"), resource, null, null, null, int.MinValue, null); }
/// <summary> /// Prepares the state of the scenario (creating stubs, test data, etc.). /// </summary> protected override void Arrange() { Given <IAuthorizationFilteringProvider>( new FakeAuthorizationFilteringProvider( SuppliedFilterName, SuppliedParameterName, SuppliedParameterValue)); var suppliedFilterText = $"TheField = :{SuppliedParameterName}"; A.CallTo(() => Given <IEducationOrganizationIdNamesProvider>() .GetAllNames()) .Returns(Array.Empty <string>()); AuthorizationFilterDefinition ignored; A.CallTo( () => Given <IAuthorizationFilterDefinitionProvider>() .TryGetAuthorizationFilterDefinition(SuppliedFilterName, out ignored)) .Returns(true) .AssignsOutAndRefParameters( new AuthorizationFilterDefinition( SuppliedFilterName, // This is how the HQL filter text is now obtained (with elimination of the INHibernateFilterTextProvider) suppliedFilterText, (criteria, junction, arg3, arg4) => { }, (ctx1, ctx2) => null, (t, props) => false)); Supplied("ResourceUriValue", "uri://some-value"); A.CallTo(() => Given <IResourceClaimUriProvider>() .GetResourceClaimUris(A <Resource> .Ignored)) .Returns(new[] { Supplied <string>("ResourceUriValue") }); var claimsIdentityProvider = new ClaimsIdentityProvider( new ApiKeyContextProvider(new CallContextStorage()), new StubSecurityRepository()); var apiClientDetails = new ApiClientDetails { ApiKey = Guid.NewGuid() .ToString("n"), ApplicationId = 999, ClaimSetName = "SomeClaimSet", NamespacePrefixes = new List <string> { "Namespace" }, EducationOrganizationIds = new[] { 123, 234 }, OwnershipTokenIds = new List <short?> { 1 } }; var claimsIdentity = claimsIdentityProvider.GetClaimsIdentity( apiClientDetails.EducationOrganizationIds, apiClientDetails.ClaimSetName, apiClientDetails.NamespacePrefixes, apiClientDetails.Profiles.ToList(), apiClientDetails.OwnershipTokenIds.ToList()); _expectedClaimsPrincipal = new ClaimsPrincipal(claimsIdentity); ClaimsPrincipal.ClaimsPrincipalSelector = () => _expectedClaimsPrincipal; Resource resource = CreateStudentResource(); // Create the builder context _hqlBuilderContext = new HqlBuilderContext( new StringBuilder(), new StringBuilder(), new StringBuilder(), new StringBuilder(), new Dictionary <string, object>(), null, 0, new Dictionary <string, CompositeSpecificationParameter>(), new Dictionary <string, object>(StringComparer.InvariantCultureIgnoreCase), new Dictionary <string, string>(StringComparer.InvariantCultureIgnoreCase), new AliasGenerator()); // Create the processor context _processorContext = new CompositeDefinitionProcessorContext( null, null, new XElement("BaseResource"), resource, null, null, null, int.MinValue, null); }