protected override void EstablishContext() { suppliedContextData = new RelationshipsAuthorizationContextData { StudentUSI = 11111 }; _suppliedEdFiResourceClaimValue = new EdFiResourceClaimValue( "manage", new List <int> { 1, 2, 3 }); suppliedClaims = new List <Claim> { JsonClaimHelper.CreateClaim( "http://ed-fi.org/ods/identity/claims/domains/generalData", _suppliedEdFiResourceClaimValue) }; _educationOrganizationCache = Stub <IEducationOrganizationCache>(); _educationOrganizationCache.Stub( x => x.GetEducationOrganizationIdentifiers(Arg <int> .Is.Anything)) .Return(new EducationOrganizationIdentifiers(0, "LocalEducationAgency")); }
/// <summary> /// Provides shared constructor logic for lazy initialization. /// </summary> /// <param name="educationOrganizationCache">The education organization cache that enables the fast lookup of education organization types from Ids.</param> private AuthorizationBuilder(IEducationOrganizationCache educationOrganizationCache) { // Lazy initialization _claimAuthorizationValues = new Lazy <List <Tuple <string, object> > >( () => GetClaimAuthorizationNameValuePairs(educationOrganizationCache)); }
public static IEducationOrganizationCache that_returns_everything_as_an_education_organization_type_of( this IEducationOrganizationCache dependency, string educationOrganizationType) { A.CallTo(() => dependency.GetEducationOrganizationIdentifiers(999)) .Returns(new EducationOrganizationIdentifiers(999, educationOrganizationType)); return(dependency); }
/// <summary> /// Initializes a new instance of the <see cref="AuthorizationBuilder{TContextData}"/> class using the /// specified <see cref="RelationshipsAuthorizationContextData"/> and collection of <see cref="Claim"/>s. /// </summary> /// <param name="relevantClaims">The claims that are applicable to the authorization decision.</param> /// <param name="educationOrganizationCache">The education organization cache that enables the fast lookup of education organization types from Ids.</param> /// <param name="contextData">The Ed-Fi specific data to be used for authorization.</param> public AuthorizationBuilder( IEnumerable <Claim> relevantClaims, IEducationOrganizationCache educationOrganizationCache, TContextData contextData) : this(educationOrganizationCache) { _contextData = contextData; _relevantClaims = relevantClaims; }
protected override void Act() { // Execute code under test var transformer = new ConcreteEducationOrganizationIdAuthorizationContextDataTransformer<RelationshipsAuthorizationContextData>( _educationOrganizationCache = Given_a_cache_that_returns_no_identifiers()); _suppliedContextData = new RelationshipsAuthorizationContextData(); _actualContextData = transformer.GetConcreteAuthorizationContextData(_suppliedContextData); }
Given_an_authorization_builder_with_claim_assigned_education_organization_ids( IEducationOrganizationCache cache, params int[] identifiers) { var builder = new AuthorizationBuilder <RelationshipsAuthorizationContextData>( new[] { JsonClaimHelper.CreateClaim("someResource", new EdFiResourceClaimValue("action", new List <int>(identifiers))) }, cache); return(builder); }
public static IEducationOrganizationCache that_always_returns_a_Local_Education_Agency_for( this IEducationOrganizationCache dependency, int educationOrganizationId) { A.CallTo(() => dependency .GetEducationOrganizationIdentifiers(educationOrganizationId)) .Returns( new EducationOrganizationIdentifiers( educationOrganizationId, "LocalEducationAgency", localEducationAgencyId: educationOrganizationId)); return(dependency); }
protected override void Arrange() { #region Commented out code for integration testing against SQL Server //private IDatabaseConnectionStringProvider connectionStringProvider; //connectionStringProvider = mocks.Stub<IDatabaseConnectionStringProvider>(); //connectionStringProvider.Stub(x => x.GetConnectionString()) // .Return(@"Server=(local);Database=database;User Id=user;Password=xxxxx"); //var executor = new EdFiOdsAuthorizationRulesExecutor(connectionStringProvider); //executor.Execute(actualAuthorizationRules); #endregion _suppliedContextData = new RelationshipsAuthorizationContextData { SchoolId = 880001, StaffUSI = 738953 //340DFAFA-D39B-4A38-BEA4-AD705CC7EB7C }; _suppliedEdFiResourceClaimValue = new EdFiResourceClaimValue( "manage", new List <int> { 780, 880, 980 }); _suppliedClaims = new List <Claim> { JsonClaimHelper.CreateClaim( "http://ed-fi.org/ods/identity/claims/domains/generalData", _suppliedEdFiResourceClaimValue) }; _educationOrganizationCache = Stub <IEducationOrganizationCache>(); A.CallTo( () => _educationOrganizationCache.GetEducationOrganizationIdentifiers(A <int> ._)) .Returns(new EducationOrganizationIdentifiers(0, "LocalEducationAgency")); }
private List <Tuple <string, object> > GetClaimAuthorizationNameValuePairs( IEducationOrganizationCache educationOrganizationCache) { var claimAuthorizationValues = new List <Tuple <string, object> >(); foreach (Claim claim in _relevantClaims) { var value = claim.ToEdFiResourceClaimValue(); if (!value.EducationOrganizationIds.Any()) { continue; } foreach (int educationOrganizationId in value.EducationOrganizationIds) { var identifiers = educationOrganizationCache.GetEducationOrganizationIdentifiers( educationOrganizationId); // Make sure EdOrg exists on the current ODS connection (where the cache gets its data) if (identifiers == null || identifiers.IsDefault) { _logger.InfoFormat( "Unable to find EducationOrganizationId '{0}' in the education organization cache for the current ODS.", educationOrganizationId); continue; } // NOTE: Embedded convention (Concrete EducationOrganization identifiers use format of "TypeName+Id") var claimNameValueTuple = Tuple.Create( identifiers.EducationOrganizationType + "Id", (object)educationOrganizationId); claimAuthorizationValues.Add(claimNameValueTuple); } } return(claimAuthorizationValues); }
that_given_education_organization_id( this IEducationOrganizationCache dependency, int identifier) { return(A.CallTo(() => dependency.GetEducationOrganizationIdentifiers(identifier))); }
public static IMethodOptions <EducationOrganizationIdentifiers> that_given_education_organization_id( this IEducationOrganizationCache dependency, int identifier) { return(dependency.Stub(x => x.GetEducationOrganizationIdentifiers(identifier))); }
public ConcreteEducationOrganizationIdAuthorizationContextDataTransformer(IEducationOrganizationCache educationOrganizationCache) { _educationOrganizationCache = educationOrganizationCache; }
/// <summary> /// Initializes a new instance of the <see cref="AuthorizationBuilder{TContextData}"/> class using the /// specified <see cref="RelationshipsAuthorizationContextData"/> and collection of <see cref="Claim"/>s. /// </summary> /// <param name="relevantClaims">The claims that are applicable to the authorization decision.</param> /// <param name="educationOrganizationCache">The education organization cache that enables the fast lookup of education organization types from Ids.</param> public AuthorizationBuilder(IEnumerable <Claim> relevantClaims, IEducationOrganizationCache educationOrganizationCache) : this(educationOrganizationCache) { _relevantClaims = relevantClaims; }
public static IReturnValueArgumentValidationConfiguration <EducationOrganizationIdentifiers> that_given_education_organization_id( this IEducationOrganizationCache dependency, int identifier) { return(A.CallTo(() => dependency.GetEducationOrganizationIdentifiers(identifier))); }