1
//-----------------------------------------------------------------------
2 // <copyright file="NegativeAssertionResponseTests.cs" company="Andrew Arnott">
3 // Copyright (c) Andrew Arnott. All rights reserved.
5 //-----------------------------------------------------------------------
7 namespace DotNetOpenAuth
.Test
.OpenId
.Messages
{
9 using System
.Collections
.Generic
;
12 using DotNetOpenAuth
.Messaging
;
13 using DotNetOpenAuth
.OpenId
;
14 using DotNetOpenAuth
.OpenId
.Messages
;
15 using DotNetOpenAuth
.OpenId
.RelyingParty
;
16 using Microsoft
.VisualStudio
.TestTools
.UnitTesting
;
19 public class NegativeAssertionResponseTests
: OpenIdTestBase
{
21 public override void SetUp() {
27 var setupRequestV1
= new CheckIdRequest(Protocol
.V10
.Version
, OPUri
, AuthenticationRequestMode
.Setup
);
28 setupRequestV1
.ReturnTo
= RPUri
;
29 var immediateRequestV1
= new CheckIdRequest(Protocol
.V10
.Version
, OPUri
, AuthenticationRequestMode
.Immediate
);
30 immediateRequestV1
.ReturnTo
= RPUri
;
32 var setupRequestV2
= new CheckIdRequest(Protocol
.V20
.Version
, OPUri
, AuthenticationRequestMode
.Setup
);
33 setupRequestV2
.ReturnTo
= RPUri
;
34 var immediateRequestV2
= new CheckIdRequest(Protocol
.V20
.Version
, OPUri
, AuthenticationRequestMode
.Immediate
);
35 immediateRequestV2
.ReturnTo
= RPUri
;
37 Assert
.AreEqual("id_res", new NegativeAssertionResponse(immediateRequestV1
).Mode
);
38 Assert
.AreEqual("cancel", new NegativeAssertionResponse(setupRequestV1
).Mode
);
39 Assert
.AreEqual("setup_needed", new NegativeAssertionResponse(immediateRequestV2
).Mode
);
40 Assert
.AreEqual("cancel", new NegativeAssertionResponse(setupRequestV2
).Mode
);
42 Assert
.IsTrue(new NegativeAssertionResponse(immediateRequestV1
).Immediate
);
43 Assert
.IsFalse(new NegativeAssertionResponse(setupRequestV1
).Immediate
);
44 Assert
.IsTrue(new NegativeAssertionResponse(immediateRequestV2
).Immediate
);
45 Assert
.IsFalse(new NegativeAssertionResponse(setupRequestV2
).Immediate
);
48 [TestMethod
, ExpectedException(typeof(ProtocolException
))]
49 public void UserSetupUrlRequiredInV1Immediate() {
50 var immediateRequestV1
= new CheckIdRequest(Protocol
.V10
.Version
, OPUri
, AuthenticationRequestMode
.Immediate
);
51 immediateRequestV1
.ReturnTo
= RPUri
;
52 new NegativeAssertionResponse(immediateRequestV1
).EnsureValidMessage();
56 public void UserSetupUrlSetForV1Immediate() {
57 var immediateRequestV1
= new CheckIdRequest(Protocol
.V10
.Version
, OPUri
, AuthenticationRequestMode
.Immediate
);
58 immediateRequestV1
.ReturnTo
= RPUri
;
59 var response
= new NegativeAssertionResponse(immediateRequestV1
);
60 response
.UserSetupUrl
= new Uri("http://usersetup");
61 response
.EnsureValidMessage();
65 public void UserSetupUrlNotRequiredInV1SetupOrV2() {
66 var setupRequestV1
= new CheckIdRequest(Protocol
.V10
.Version
, OPUri
, AuthenticationRequestMode
.Setup
);
67 setupRequestV1
.ReturnTo
= RPUri
;
68 new NegativeAssertionResponse(setupRequestV1
).EnsureValidMessage();
70 var setupRequestV2
= new CheckIdRequest(Protocol
.V20
.Version
, OPUri
, AuthenticationRequestMode
.Setup
);
71 setupRequestV2
.ReturnTo
= RPUri
;
72 new NegativeAssertionResponse(setupRequestV2
).EnsureValidMessage();
74 var immediateRequestV2
= new CheckIdRequest(Protocol
.V20
.Version
, OPUri
, AuthenticationRequestMode
.Immediate
);
75 immediateRequestV2
.ReturnTo
= RPUri
;
76 new NegativeAssertionResponse(immediateRequestV2
).EnsureValidMessage();