public void TestThatEvaluateReturnsTrueWhenClaimSetsInEvaluationContextIsNotNull() { var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); authorizationHandlerMock.Stub(m => m.GetTrustedClaimSets(Arg <IEnumerable <ClaimSet> > .Is.NotNull)) .Return(new List <ClaimSet>(0)) .Repeat.Any(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(new Dictionary <string, object>(0)) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Return(new ReadOnlyCollection <ClaimSet>(new List <ClaimSet>(0))) .Repeat.Any(); var state = CreateLegalState(); var result = claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state); Assert.That(result, Is.True); }
public void TestThatEvaluateThrowsFaultExceptionWhenExceptionOccurs() { var fixture = new Fixture(); var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var error = fixture.Create <Exception>(); var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(new Dictionary <string, object>(0)) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Throw(error) .Repeat.Any(); var state = CreateLegalState(); var exception = Assert.Throws <FaultException>(() => claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state)); Assert.That(exception, Is.Not.Null); Assert.That(exception.Message, Is.Not.Null); Assert.That(exception.Message, Is.Not.Empty); Assert.That(exception.Message, Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.NotAuthorizedToUseService, error.Message))); Assert.That(exception.Reason, Is.Not.Null); Assert.That(exception.Reason.ToString(), Is.Not.Null); Assert.That(exception.Reason.ToString(), Is.Not.Empty); Assert.That(exception.Reason.ToString(), Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.NotAuthorizedToUseService, error.Message))); Assert.That(exception.InnerException, Is.Null); }
public void TestThatEvaluateSetsPrincipalWithClaimIdentityWithoutClaimsInPropertiesOnEvaluationContextWhenClaimSetsInEvaluationContextIsNull() { var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var properties = new Dictionary <string, object>(0); var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(properties) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Return(null) .Repeat.Any(); var state = CreateLegalState(); claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state); var claimPrincipal = (ClaimsPrincipal)properties["Principal"]; Assert.That(claimPrincipal, Is.Not.Null); Assert.That(claimPrincipal.Identity, Is.Not.Null); Assert.That(claimPrincipal.Identity, Is.TypeOf <ClaimsIdentity>()); Assert.That(claimPrincipal.Identities, Is.Not.Null); Assert.That(claimPrincipal.Identities, Is.Not.Empty); Assert.That(claimPrincipal.Identities.Count, Is.EqualTo(1)); Assert.That(claimPrincipal.Identities.ElementAt(0), Is.Not.Null); Assert.That(claimPrincipal.Identities.ElementAt(0).Claims, Is.Not.Null); Assert.That(claimPrincipal.Identities.ElementAt(0).Claims, Is.Empty); }
public void TestThatEvaluateReturnsFalseWhenPropertiesOnEvaluationContextContainsPrincipalWhichAreNotClaimsPrincipal() { var fixture = new Fixture(); var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var properties = new Dictionary <string, object> { { "Principal", fixture.Create <object>() } }; var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(properties) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Return(null) .Repeat.Any(); var state = CreateLegalState(); var result = claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state); Assert.That(result, Is.False); }
public void TestThatEvaluateSetsPrincipalWithClaimIdentityWithTrustedClaimSetsInPropertiesOnEvaluationContextWhenClaimSetsInEvaluationContextIsNotNull(string certificateSubjectName) { var certificateClaimSet = new X509CertificateClaimSet(TestHelper.GetCertificate(certificateSubjectName)); var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); authorizationHandlerMock.Stub(m => m.GetTrustedClaimSets(Arg <IEnumerable <ClaimSet> > .Is.NotNull)) .Return(new List <ClaimSet> { certificateClaimSet }) .Repeat.Any(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var properties = new Dictionary <string, object>(0); var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(properties) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Return(new ReadOnlyCollection <ClaimSet>(new List <ClaimSet> { MockRepository.GenerateStub <ClaimSet>() })) .Repeat.Any(); var state = CreateLegalState(); claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state); var claimPrincipal = (ClaimsPrincipal)properties["Principal"]; Assert.That(claimPrincipal, Is.Not.Null); Assert.That(claimPrincipal.Identity, Is.Not.Null); Assert.That(claimPrincipal.Identity, Is.TypeOf <ClaimsIdentity>()); Assert.That(claimPrincipal.Identities, Is.Not.Null); Assert.That(claimPrincipal.Identities, Is.Not.Empty); Assert.That(claimPrincipal.Identities.Count, Is.EqualTo(1)); Assert.That(claimPrincipal.Identities.ElementAt(0), Is.Not.Null); Assert.That(claimPrincipal.Identities.ElementAt(0).Claims, Is.Not.Null); Assert.That(claimPrincipal.Identities.ElementAt(0).Claims, Is.Not.Empty); Assert.That(claimPrincipal.Identities.ElementAt(0).Claims.Count, Is.EqualTo(certificateClaimSet.Count(claim => string.Compare(claim.Right, Rights.PossessProperty, StringComparison.Ordinal) == 0))); }
public void TestThatEvaluateThrowsArgumentNullExceptionWhenEvaluationContextIsNull() { var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var state = CreateLegalState(); // ReSharper disable AssignNullToNotNullAttribute var exception = Assert.Throws <ArgumentNullException>(() => claimsPrincipalBuilderAuthorizationPolicy.Evaluate(null, ref state)); // ReSharper restore AssignNullToNotNullAttribute Assert.That(exception, Is.Not.Null); Assert.That(exception.ParamName, Is.Not.Null); Assert.That(exception.ParamName, Is.Not.Empty); Assert.That(exception.ParamName, Is.EqualTo("evaluationContext")); Assert.That(exception.InnerException, Is.Null); }
public void TestThatEvaluateSetsPrincipalInPropertiesOnEvaluationContextWhenClaimSetsInEvaluationContextIsNull() { var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(new Dictionary <string, object>(0)) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Return(null) .Repeat.Any(); var state = CreateLegalState(); claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state); evaluationContextStub.AssertWasCalled(m => m.Properties[Arg <string> .Is.Equal("Principal")] = Arg <ClaimsPrincipal> .Is.TypeOf); }
public void TestThatEvaluateDoesNotCallGetTrustedClaimSetsOnAuthorizationHandlerWhenClaimSetsInEvaluationContextIsNull() { var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(new Dictionary <string, object>(0)) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Return(null) .Repeat.Any(); var state = CreateLegalState(); claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state); authorizationHandlerMock.AssertWasNotCalled(m => m.GetTrustedClaimSets(Arg <IEnumerable <ClaimSet> > .Is.Anything)); }
public void TestThatEvaluateAddsPrincipalToPropertiesOnEvaluationContextWhenPropertiesDoesNotContainsPrincipal() { var authorizationHandlerMock = MockRepository.GenerateMock <IAuthorizationHandler>(); var claimsPrincipalBuilderAuthorizationPolicy = new ClaimsPrincipalBuilderAuthorizationPolicy(authorizationHandlerMock); Assert.That(claimsPrincipalBuilderAuthorizationPolicy, Is.Not.Null); var properties = new Dictionary <string, object>(0); var evaluationContextStub = MockRepository.GenerateStub <EvaluationContext>(); evaluationContextStub.Stub(m => m.Properties) .Return(properties) .Repeat.Any(); evaluationContextStub.Stub(m => m.ClaimSets) .Return(null) .Repeat.Any(); var state = CreateLegalState(); Assert.That(properties.ContainsKey("Principal"), Is.False); claimsPrincipalBuilderAuthorizationPolicy.Evaluate(evaluationContextStub, ref state); Assert.That(properties.ContainsKey("Principal"), Is.True); }