//----------------------------------------------------------------------- // // Copyright (c) Andrew Arnott. All rights reserved. // //----------------------------------------------------------------------- namespace DotNetOpenAuth.Test.OpenId.Messages { using System; using System.Net; using DotNetOpenAuth.Messaging; using DotNetOpenAuth.OpenId; using DotNetOpenAuth.OpenId.Messages; using NUnit.Framework; [TestFixture] public class DirectErrorResponseTests : OpenIdTestBase { private DirectErrorResponse response; [SetUp] public override void SetUp() { base.SetUp(); var request = new AssociateUnencryptedRequest(Protocol.V20.Version, new Uri("http://host")); this.response = new DirectErrorResponse(request.Version, request); } [TestCase] public void ParameterNames() { this.response.ErrorMessage = "Some Error"; this.response.Contact = "Andrew Arnott"; this.response.Reference = "http://blog.nerdbank.net/"; MessageSerializer serializer = MessageSerializer.Get(this.response.GetType()); var fields = this.MessageDescriptions.GetAccessor(this.response).Serialize(); Assert.AreEqual(Protocol.OpenId2Namespace, fields["ns"]); Assert.AreEqual("Some Error", fields["error"]); Assert.AreEqual("Andrew Arnott", fields["contact"]); Assert.AreEqual("http://blog.nerdbank.net/", fields["reference"]); } /// /// Verifies that error messages are created as HTTP 400 errors, /// per OpenID 2.0 section 5.1.2.2. /// [TestCase] public void ErrorMessagesAsHttp400() { var httpStatusMessage = (IHttpDirectResponse)this.response; Assert.AreEqual(HttpStatusCode.BadRequest, httpStatusMessage.HttpStatusCode); } } }