예제 #1
0
            /// <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);
            }
예제 #2
0
            /// <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);
            }