public void TestThatIssueRetursIfAppliesToInRequestSecurityTokenContainsTrustedRelyingParty(string trustedUri, string identityCertificate) { var fixture = new Fixture(); var identifyMock = MockRepository.GenerateMock <IIdentity>(); identifyMock.Expect(m => m.Name) .Return(fixture.Create <string>()) .Repeat.Any(); identifyMock.Expect(m => m.IsAuthenticated) .Return(true) .Repeat.Any(); var claimPrincipalMock = MockRepository.GenerateMock <IClaimsPrincipal>(); claimPrincipalMock.Stub(m => m.Identity) .Return(identifyMock) .Repeat.Any(); claimPrincipalMock.Stub(m => m.Identities) .Return(null) .Repeat.Any(); var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); var request = new RequestSecurityToken { AppliesTo = new EndpointAddress(new Uri(trustedUri), new X509CertificateEndpointIdentity(TestHelper.GetCertificate(identityCertificate)), new AddressHeaderCollection()) }; var response = basicSecurityTokenService.Issue(claimPrincipalMock, request); Assert.That(response, Is.Not.Null); }
public void TestThatIssueThrowsInvalidRequestExceptionIfAppliesToInRequestSecurityTokenContainsNoTrustedRelyingParty(string untrustedUri, string identityCertificate) { var identifyMock = MockRepository.GenerateMock <IIdentity>(); identifyMock.Expect(m => m.IsAuthenticated) .Return(true) .Repeat.Any(); var claimPrincipalMock = MockRepository.GenerateMock <IClaimsPrincipal>(); claimPrincipalMock.Stub(m => m.Identity) .Return(identifyMock) .Repeat.Any(); var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); var request = new RequestSecurityToken { AppliesTo = new EndpointAddress(new Uri(untrustedUri), new X509CertificateEndpointIdentity(TestHelper.GetCertificate(identityCertificate)), new AddressHeaderCollection()) }; var exception = Assert.Throws <InvalidRequestException>(() => basicSecurityTokenService.Issue(claimPrincipalMock, request)); 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.InvalidRelyingPartyAddress, new Uri(untrustedUri)))); Assert.That(exception.InnerException, Is.Null); }
public void TestThatIssueThrowsInvalidRequestExceptionIfAppliesToInRequestSecurityTokenIsNull() { var identifyMock = MockRepository.GenerateMock <IIdentity>(); identifyMock.Expect(m => m.IsAuthenticated) .Return(true) .Repeat.Any(); var claimPrincipalMock = MockRepository.GenerateMock <IClaimsPrincipal>(); claimPrincipalMock.Stub(m => m.Identity) .Return(identifyMock) .Repeat.Any(); var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); var request = new RequestSecurityToken { AppliesTo = null }; var exception = Assert.Throws <InvalidRequestException>(() => basicSecurityTokenService.Issue(claimPrincipalMock, request)); 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.AppliesToMustBeSuppliedInRequestSecurityToken))); Assert.That(exception.InnerException, Is.Null); }
public void TestThatIssueThrowsInvalidRequestExceptionIfIsAuthenticatedFromIdentityOnClaimsPrincipalIsFalse() { var identifyMock = MockRepository.GenerateMock <IIdentity>(); identifyMock.Expect(m => m.IsAuthenticated) .Return(false) .Repeat.Any(); var claimPrincipalMock = MockRepository.GenerateMock <IClaimsPrincipal>(); claimPrincipalMock.Stub(m => m.Identity) .Return(identifyMock) .Repeat.Any(); var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); var exception = Assert.Throws <InvalidRequestException>(() => basicSecurityTokenService.Issue(claimPrincipalMock, new RequestSecurityToken())); 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((new AuthenticationException()).Message)); Assert.That(exception.InnerException, Is.Not.Null); Assert.That(exception.InnerException, Is.TypeOf <AuthenticationException>()); }
public void TestThatIssueAppendsClaimsToCallingClaimsPrincipal(string trustedUri, string identityCertificate, string mailAddress, int expectedAppendedClaims) { var fixture = new Fixture(); var identifyMock = MockRepository.GenerateMock <IIdentity>(); identifyMock.Expect(m => m.Name) .Return(fixture.Create <string>()) .Repeat.Any(); identifyMock.Expect(m => m.IsAuthenticated) .Return(true) .Repeat.Any(); var claimsIdentityMock = MockRepository.GenerateMock <IClaimsIdentity>(); var claimsCollection = new ClaimCollection(claimsIdentityMock) { new Claim(ClaimTypes.Email, mailAddress) }; claimsIdentityMock.Stub(m => m.Claims) .Return(claimsCollection) .Repeat.Any(); var claimsIdentityCollection = new ClaimsIdentityCollection(new List <IClaimsIdentity> { claimsIdentityMock }); var claimPrincipalMock = MockRepository.GenerateMock <IClaimsPrincipal>(); claimPrincipalMock.Stub(m => m.Identity) .Return(identifyMock) .Repeat.Any(); claimPrincipalMock.Stub(m => m.Identities) .Return(claimsIdentityCollection) .Repeat.Any(); var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); var request = new RequestSecurityToken { AppliesTo = new EndpointAddress(new Uri(trustedUri), new X509CertificateEndpointIdentity(TestHelper.GetCertificate(identityCertificate)), new AddressHeaderCollection()) }; var response = basicSecurityTokenService.Issue(claimPrincipalMock, request); Assert.That(response, Is.Not.Null); Assert.That(claimsCollection.Count, Is.EqualTo(1 + expectedAppendedClaims)); }
public void TestThatIssueThrowsArgumentNullExceptionIfRequestSecurityTokenIsNull() { var fixture = new Fixture(); fixture.Customize <IClaimsPrincipal>(e => e.FromFactory(() => MockRepository.GenerateMock <IClaimsPrincipal>())); var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); var exception = Assert.Throws <ArgumentNullException>(() => basicSecurityTokenService.Issue(fixture.Create <IClaimsPrincipal>(), null)); 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("request")); Assert.That(exception.InnerException, Is.Null); }
public void TestThatIssueThrowsInvalidRequestExceptionIfClaimsPrincipalIsNull() { var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); var exception = Assert.Throws <InvalidRequestException>(() => basicSecurityTokenService.Issue(null, new RequestSecurityToken())); Assert.That(exception, Is.Not.Null); Assert.That(exception.Message, Is.Not.Null); Assert.That(exception.Message, Is.Not.Empty); // ReSharper disable NotResolvedInText Assert.That(exception.Message, Is.EqualTo((new ArgumentNullException("principal")).Message)); // ReSharper restore NotResolvedInText Assert.That(exception.InnerException, Is.Not.Null); Assert.That(exception.InnerException, Is.TypeOf <ArgumentNullException>()); Assert.That(((ArgumentNullException)exception.InnerException).ParamName, Is.Not.Null); Assert.That(((ArgumentNullException)exception.InnerException).ParamName, Is.Not.Empty); Assert.That(((ArgumentNullException)exception.InnerException).ParamName, Is.EqualTo("principal")); Assert.That(exception.InnerException.InnerException, Is.Null); }
public void TestThatConstructorCanInitializeBasicSecurityTokenService() { var basicSecurityTokenService = new BasicSecurityTokenService(new BasicSecurityTokenServiceConfiguration()); Assert.That(basicSecurityTokenService, Is.Not.Null); }