public async Task ParseResponse_success_Test() { //ARRANGE var inResponseTo = "Test_" + Guid.NewGuid().ToString(); var response = ResponseFactoryMock.GetTokenResponseSuccess(inResponseTo, StatusCodes.Success); var logger = new LogProviderMock(); var serialised = ResponseFactoryMock.Serialize(response); var parser = new SamlTokenResponseParser(logger); //ACT var tokenResponse = await parser.Parse(serialised); //ASSERT Assert.AreEqual(StatusCodes.Success, tokenResponse.Status.StatusCode.Value); Assert.IsNull(tokenResponse.Status.StatusCode.SubStatusCode); Assert.IsNull(tokenResponse.Status.StatusMessage); Assert.IsNull(tokenResponse.Status.StatusDetail); Assert.AreEqual(inResponseTo, tokenResponse.InResponseTo); Assert.AreEqual(response.ID, tokenResponse.ID); Assert.AreEqual(response.IssueInstant, tokenResponse.IssueInstant); Assert.AreEqual(response.Issuer.Format, tokenResponse.Issuer.Format); Assert.AreEqual(response.Issuer.Value, tokenResponse.Issuer.Value); Assert.AreEqual(response.Version, tokenResponse.Version); Assert.AreEqual(response.Destination, tokenResponse.Destination); }
public async Task ParseResponse_failed_2_nested_status_code_Test() { //ARRANGE var inResponseTo = Guid.NewGuid().ToString(); var response = ResponseFactoryMock.GetTokenResponse(inResponseTo, StatusCodes.Responder); ResponseFactoryMock.GetStatusCode(StatusCodes.NoAuthnContext, response.Status.StatusCode); ResponseFactoryMock.GetStatusCode(StatusCodes.InvalidNameIdPolicy, response.Status.StatusCode.SubStatusCode); response.Status.StatusMessage = "Test message"; var logger = new LogProviderMock(); var serialised = ResponseFactoryMock.Serialize(response); var parser = new SamlTokenResponseParser(logger); //ACT var tokenResponse = await parser.Parse(serialised); //ASSERT Assert.AreEqual(StatusCodes.Responder, tokenResponse.Status.StatusCode.Value); Assert.IsNotNull(tokenResponse.Status.StatusCode.SubStatusCode); Assert.AreEqual(StatusCodes.NoAuthnContext, tokenResponse.Status.StatusCode.SubStatusCode.Value); Assert.IsNotNull(tokenResponse.Status.StatusCode.SubStatusCode.SubStatusCode); Assert.AreEqual(StatusCodes.InvalidNameIdPolicy, tokenResponse.Status.StatusCode.SubStatusCode.SubStatusCode.Value); Assert.IsNull(tokenResponse.Status.StatusCode.SubStatusCode.SubStatusCode.SubStatusCode); Assert.AreEqual("Test message", tokenResponse.Status.StatusMessage); Assert.IsNull(tokenResponse.Status.StatusDetail); }
public async Task ParseResponse_failed_nested_status_code_with_details_Test() { //ARRANGE var inResponseTo = Guid.NewGuid().ToString(); var response = ResponseFactoryMock.GetTokenResponse(inResponseTo, StatusCodes.Responder); ResponseFactoryMock.GetStatusCode(StatusCodes.NoAuthnContext, response.Status.StatusCode); response.Status.StatusMessage = "Test message"; var doc = new XmlDocument(); //doc.PreserveWhitespace = true; var el = doc.CreateElement("DetailElement"); el.SetAttribute("MessageId", "Status details"); var el1 = doc.CreateElement("AditionalDetailElement"); el1.SetAttribute("AdditionalDetail", "Additional details"); ResponseFactoryMock.BuildStatuseDetail(response.Status, new[] { el, el1 }); var logger = new LogProviderMock(); var serialised = ResponseFactoryMock.Serialize(response); var parser = new SamlTokenResponseParser(logger); //ACT var tokenResponse = await parser.Parse(serialised); //ASSERT Assert.AreEqual(StatusCodes.Responder, tokenResponse.Status.StatusCode.Value); Assert.IsNotNull(tokenResponse.Status.StatusCode.SubStatusCode); Assert.AreEqual(StatusCodes.NoAuthnContext, tokenResponse.Status.StatusCode.SubStatusCode.Value); Assert.IsNull(tokenResponse.Status.StatusCode.SubStatusCode.SubStatusCode); Assert.AreEqual("Test message", tokenResponse.Status.StatusMessage); Assert.IsNotNull(tokenResponse.Status.StatusDetail); Assert.AreEqual(2, tokenResponse.Status.StatusDetail.Any.Length); }