diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/CallbackHandlerTests.cs b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/CallbackHandlerTests.cs new file mode 100644 index 00000000..f0e885b3 --- /dev/null +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/CallbackHandlerTests.cs @@ -0,0 +1,50 @@ +// +// Copyright (c) 2015 Stormpath, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +using System.Collections.Generic; +using Stormpath.SDK.IdSite; + +namespace Stormpath.SDK.Tests.Impl.IdSite +{ + public class CallbackHandlerTests + { + private static readonly string RegisteredResponse = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + + "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + + "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + + "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + + "N1YiI6ZmFsc2UsInN0YXR1cyI6IlJFR0lTVEVSRUQifQ.4_yCiF6Cik2wep3iwyinTTcn5GHAEvCbIezO1aA5Kkk"; + + private static readonly string AuthenticatedResponse = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + + "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + + "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + + "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + + "N1YiI6ZmFsc2UsInN0YXR1cyI6IkFVVEhFTlRJQ0FURUQifQ.rpp0lsM1JDFeqkrOdwrtYOB1aitnLwhJuH3iaeuLIXY"; + + private static readonly string LogoutResponse = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + + "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + + "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + + "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + + "N1YiI6ZmFsc2UsInN0YXR1cyI6IkxPR09VVCJ9.T6ClI4znHCElk1gMQoBpVvE9Jc5Vf4BEjrQ0IWvKYIc"; + + public static IEnumerable TestCases() + { + yield return new object[] { nameof(RegisteredResponse), RegisteredResponse, IdSiteResultStatus.Registered.Value, false, null }; + yield return new object[] { nameof(AuthenticatedResponse), AuthenticatedResponse, IdSiteResultStatus.Authenticated.Value, false, null }; + yield return new object[] { nameof(LogoutResponse), LogoutResponse, IdSiteResultStatus.Logout.Value, false, null }; + } + } +} diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_exception_tests.cs b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_exception_tests.cs index 5e548e00..bae844e4 100644 --- a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_exception_tests.cs +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_exception_tests.cs @@ -15,7 +15,6 @@ // using System; -using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using NSubstitute; @@ -27,7 +26,6 @@ using Stormpath.SDK.Impl.DataStore; using Stormpath.SDK.Impl.Http; using Stormpath.SDK.Impl.IdSite; -using Stormpath.SDK.Jwt; using Stormpath.SDK.Tests.Helpers; using Xunit; @@ -42,57 +40,8 @@ public void Dispose() this.dataStore.Dispose(); } - private static readonly string UnknownOrganization = - "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + - "IiOnsiY29kZSI6MTEwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBv" + - "cmdhbml6YXRpb24gbmFtZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4geW91ciBTdG9ybXBhdGggVGVuYW50LiIsIm1lc3NhZ2UiOiJUb2" + - "tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMDAxMSIsInN0YXR1cyI6" + - "NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlREU0Z1RvMVI5My" + - "IsImV4cCI6MzM1MDI0NjY2NTAwMCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGFoIn0.SDf6NM5S" + - "10fW7OiGwjcAEqWEPU-nd6YDkOZGBmw8G18"; - - private static readonly string IatAfterCurrentTime = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + - "IiOnsiY29kZSI6MTAwMTIsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIGlzc3VlZCBhdCB0" + - "aW1lIChpYXQpIGlzIGFmdGVyIHRoZSBjdXJyZW50IHRpbWUuIiwibWVzc2FnZSI6IlRva2VuIGlzIGludmFsaWQiLCJtb3JlSW5mby" + - "I6Imh0dHA6Ly9kb2NzLnN0b3JtcGF0aC5jb20vZXJyb3JzLzEwMDEyIiwic3RhdHVzIjo0MDB9LCJpc3MiOiJodHRwczovL2FwaS5z" + - "dG9ybXBhdGguY29tL3YxL2FwcGxpY2F0aW9ucy8yZXFieVo4cW8zNGVERTRnVG8xUjkzIiwiZXhwIjozMzUwMjQ2NjY1MDAwLCJpYX" + - "QiOjE0MDcxOTg1NTAsImp0aSI6IjQzNnZra0hnazF4MzA1N3BDUHFUYWgifQ.JT__dR0jC6fYZv9NYVC4k45mD5fAQfl_l7yElYm5JMk"; - - private static readonly string OrganizationNameKeyNotAssigned = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcnIiOnsiY" + - "29kZSI6MTEwMDMsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBvcmdhbml" + - "6YXRpb24gbmFtZUtleSBpcyBub3Qgb25lIG9mIHRoZSBhcHBsaWNhdGlvbidzIGFzc2lnbmVkIGFjY291bnQgc3RvcmVzLiIsIm1lc" + - "3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMTAwMyI" + - "sInN0YXR1cyI6NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlR" + - "EU0Z1RvMVI5MyIsImV4cCI6MzM1MDI0NjY2NTAwMCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGF" + - "oIn0.rN7yWI1v9IzsOuooe3cC1WKM4vpqB_vsa00mnXvj3nw"; - - private static readonly string SessionTimedOut = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcnIiOnsiY" + - "29kZSI6MTIwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUaGUgc2Vzc2lvbiBvbiBJRCBTaXRlIGhhcyB0aW1lZCBvdXQuIFRoaXMgY2F" + - "uIG9jY3VyIGlmIHRoZSB1c2VyIHN0YXlzIG9uIElEIFNpdGUgd2l0aG91dCBsb2dnaW5nIGluLCByZWdpc3RlcmluZywgb3IgcmVzZ" + - "XR0aW5nIGEgcGFzc3dvcmQuIiwibWVzc2FnZSI6IlRoZSBzZXNzaW9uIG9uIElEIFNpdGUgaGFzIHRpbWVkIG91dC4iLCJtb3JlSW5" + - "mbyI6Im1haWx0bzpzdXBwb3J0QHN0b3JtcGF0aC5jb20iLCJzdGF0dXMiOjQwMX0sImlzcyI6Imh0dHBzOi8vYXBpLnN0b3JtcGF0a" + - "C5jb20vdjEvYXBwbGljYXRpb25zLzJlcWJ5WjhxbzM0ZURFNGdUbzFSOTMiLCJleHAiOjMzNTAyNDY2NjUwMDAsImlhdCI6MTQwNzE" + - "5ODU1MCwianRpIjoiNDM2dmtrSGdrMXgzMDU3cENQcVRhaCJ9.xuW4L7HPe0M__mVK7jndY6g9Mcnuc1kanw_7bolOK3Y"; - - private static readonly string ExpiredJwt = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + - "IiOnsiY29kZSI6MTEwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBv" + - "cmdhbml6YXRpb24gbmFtZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4geW91ciBTdG9ybXBhdGggVGVuYW50LiIsIm1lc3NhZ2UiOiJUb2" + - "tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMDAxMSIsInN0YXR1cyI6" + - "NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlREU0Z1RvMVI5My" + - "IsImV4cCI6MTQ0MDcwNTA2MCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGFoIn0.OR7ho9XsZ7rC" + - "RYGumvw-SO0UzD2kEXg-janTAkxD_bE"; - - public static IEnumerable TestCases() - { - yield return new object[] { nameof(UnknownOrganization), UnknownOrganization, typeof(IdSiteRuntimeException), 11001, 400, "Token is invalid", "Token is invalid because the specified organization name key does not exist in your Stormpath Tenant." }; - yield return new object[] { nameof(IatAfterCurrentTime), IatAfterCurrentTime, typeof(InvalidIdSiteTokenException), 10012, 400, "Token is invalid", "Token is invalid because the issued at time (iat) is after the current time." }; - yield return new object[] { nameof(OrganizationNameKeyNotAssigned), OrganizationNameKeyNotAssigned, typeof(InvalidIdSiteTokenException), 11003, 400, "Token is invalid", "Token is invalid because the specified organization nameKey is not one of the application's assigned account stores." }; - yield return new object[] { nameof(SessionTimedOut), SessionTimedOut, typeof(IdSiteSessionTimeoutException), 12001, 401, "The session on ID Site has timed out.", "The session on ID Site has timed out. This can occur if the user stays on ID Site without logging in, registering, or resetting a password." }; - yield return new object[] { nameof(ExpiredJwt), ExpiredJwt, typeof(ExpiredJwtException), 0, 0, $"JWT expired at 2015-08-27T19:51:00Z. Current time: ", null }; - } - [Theory] - [MemberData(nameof(TestCases))] + [MemberData(nameof(ExceptionTests.TestCases), MemberType = typeof(ExceptionTests))] public async Task Handle_error(string id_, string jwtResponse, Type expectedExceptionType, int expectedCode, int expectedStatus, string expectedMessage, string expectedDeveloperMessage) { var testApiKey = ClientApiKeys.Builder() diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_tests.cs b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_tests.cs index cab93720..8e8c8c29 100644 --- a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_tests.cs +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteAsyncCallbackHandler_tests.cs @@ -15,7 +15,6 @@ // using System; -using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using NSubstitute; @@ -41,34 +40,8 @@ public void Dispose() this.dataStore.Dispose(); } - private static readonly string RegisteredResponse = - "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + - "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + - "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + - "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + - "N1YiI6ZmFsc2UsInN0YXR1cyI6IlJFR0lTVEVSRUQifQ.4_yCiF6Cik2wep3iwyinTTcn5GHAEvCbIezO1aA5Kkk"; - - private static readonly string AuthenticatedResponse = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + - "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + - "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + - "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + - "N1YiI6ZmFsc2UsInN0YXR1cyI6IkFVVEhFTlRJQ0FURUQifQ.rpp0lsM1JDFeqkrOdwrtYOB1aitnLwhJuH3iaeuLIXY"; - - private static readonly string LogoutResponse = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + - "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + - "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + - "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + - "N1YiI6ZmFsc2UsInN0YXR1cyI6IkxPR09VVCJ9.T6ClI4znHCElk1gMQoBpVvE9Jc5Vf4BEjrQ0IWvKYIc"; - - public static IEnumerable TestCases() - { - yield return new object[] { nameof(RegisteredResponse), RegisteredResponse, IdSiteResultStatus.Registered.Value, false, null }; - yield return new object[] { nameof(AuthenticatedResponse), AuthenticatedResponse, IdSiteResultStatus.Authenticated.Value, false, null }; - yield return new object[] { nameof(LogoutResponse), LogoutResponse, IdSiteResultStatus.Logout.Value, false, null }; - } - [Theory] - [MemberData(nameof(TestCases))] + [MemberData(nameof(CallbackHandlerTests.TestCases), MemberType = typeof(CallbackHandlerTests))] public async Task Handle_response(string id_, string jwtResponse, string expectedStatus, bool isNewAccount, string expectedState) { IAccountResult accountResultFromListener = null; diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_exception_tests.cs b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_exception_tests.cs index df328135..6408851b 100644 --- a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_exception_tests.cs +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_exception_tests.cs @@ -15,7 +15,6 @@ // using System; -using System.Collections.Generic; using NSubstitute; using Shouldly; using Stormpath.SDK.Api; @@ -25,7 +24,6 @@ using Stormpath.SDK.Impl.DataStore; using Stormpath.SDK.Impl.Http; using Stormpath.SDK.Impl.IdSite; -using Stormpath.SDK.Jwt; using Stormpath.SDK.Tests.Helpers; using Xunit; @@ -40,60 +38,14 @@ public void Dispose() this.dataStore.Dispose(); } - private static readonly string UnknownOrganization = - "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + - "IiOnsiY29kZSI6MTEwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBv" + - "cmdhbml6YXRpb24gbmFtZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4geW91ciBTdG9ybXBhdGggVGVuYW50LiIsIm1lc3NhZ2UiOiJUb2" + - "tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMDAxMSIsInN0YXR1cyI6" + - "NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlREU0Z1RvMVI5My" + - "IsImV4cCI6MzM1MDI0NjY2NTAwMCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGFoIn0.SDf6NM5S" + - "10fW7OiGwjcAEqWEPU-nd6YDkOZGBmw8G18"; - - private static readonly string IatAfterCurrentTime = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + - "IiOnsiY29kZSI6MTAwMTIsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIGlzc3VlZCBhdCB0" + - "aW1lIChpYXQpIGlzIGFmdGVyIHRoZSBjdXJyZW50IHRpbWUuIiwibWVzc2FnZSI6IlRva2VuIGlzIGludmFsaWQiLCJtb3JlSW5mby" + - "I6Imh0dHA6Ly9kb2NzLnN0b3JtcGF0aC5jb20vZXJyb3JzLzEwMDEyIiwic3RhdHVzIjo0MDB9LCJpc3MiOiJodHRwczovL2FwaS5z" + - "dG9ybXBhdGguY29tL3YxL2FwcGxpY2F0aW9ucy8yZXFieVo4cW8zNGVERTRnVG8xUjkzIiwiZXhwIjozMzUwMjQ2NjY1MDAwLCJpYX" + - "QiOjE0MDcxOTg1NTAsImp0aSI6IjQzNnZra0hnazF4MzA1N3BDUHFUYWgifQ.JT__dR0jC6fYZv9NYVC4k45mD5fAQfl_l7yElYm5JMk"; - - private static readonly string OrganizationNameKeyNotAssigned = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcnIiOnsiY" + - "29kZSI6MTEwMDMsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBvcmdhbml" + - "6YXRpb24gbmFtZUtleSBpcyBub3Qgb25lIG9mIHRoZSBhcHBsaWNhdGlvbidzIGFzc2lnbmVkIGFjY291bnQgc3RvcmVzLiIsIm1lc" + - "3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMTAwMyI" + - "sInN0YXR1cyI6NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlR" + - "EU0Z1RvMVI5MyIsImV4cCI6MzM1MDI0NjY2NTAwMCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGF" + - "oIn0.rN7yWI1v9IzsOuooe3cC1WKM4vpqB_vsa00mnXvj3nw"; - - private static readonly string SessionTimedOut = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcnIiOnsiY" + - "29kZSI6MTIwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUaGUgc2Vzc2lvbiBvbiBJRCBTaXRlIGhhcyB0aW1lZCBvdXQuIFRoaXMgY2F" + - "uIG9jY3VyIGlmIHRoZSB1c2VyIHN0YXlzIG9uIElEIFNpdGUgd2l0aG91dCBsb2dnaW5nIGluLCByZWdpc3RlcmluZywgb3IgcmVzZ" + - "XR0aW5nIGEgcGFzc3dvcmQuIiwibWVzc2FnZSI6IlRoZSBzZXNzaW9uIG9uIElEIFNpdGUgaGFzIHRpbWVkIG91dC4iLCJtb3JlSW5" + - "mbyI6Im1haWx0bzpzdXBwb3J0QHN0b3JtcGF0aC5jb20iLCJzdGF0dXMiOjQwMX0sImlzcyI6Imh0dHBzOi8vYXBpLnN0b3JtcGF0a" + - "C5jb20vdjEvYXBwbGljYXRpb25zLzJlcWJ5WjhxbzM0ZURFNGdUbzFSOTMiLCJleHAiOjMzNTAyNDY2NjUwMDAsImlhdCI6MTQwNzE" + - "5ODU1MCwianRpIjoiNDM2dmtrSGdrMXgzMDU3cENQcVRhaCJ9.xuW4L7HPe0M__mVK7jndY6g9Mcnuc1kanw_7bolOK3Y"; - - private static readonly string ExpiredJwt = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + - "IiOnsiY29kZSI6MTEwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBv" + - "cmdhbml6YXRpb24gbmFtZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4geW91ciBTdG9ybXBhdGggVGVuYW50LiIsIm1lc3NhZ2UiOiJUb2" + - "tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMDAxMSIsInN0YXR1cyI6" + - "NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlREU0Z1RvMVI5My" + - "IsImV4cCI6MTQ0MDcwNTA2MCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGFoIn0.OR7ho9XsZ7rC" + - "RYGumvw-SO0UzD2kEXg-janTAkxD_bE"; - - public static IEnumerable TestCases() - { - yield return new object[] { nameof(UnknownOrganization), UnknownOrganization, typeof(IdSiteRuntimeException), 11001, 400, "Token is invalid", "Token is invalid because the specified organization name key does not exist in your Stormpath Tenant." }; - yield return new object[] { nameof(IatAfterCurrentTime), IatAfterCurrentTime, typeof(InvalidIdSiteTokenException), 10012, 400, "Token is invalid", "Token is invalid because the issued at time (iat) is after the current time." }; - yield return new object[] { nameof(OrganizationNameKeyNotAssigned), OrganizationNameKeyNotAssigned, typeof(InvalidIdSiteTokenException), 11003, 400, "Token is invalid", "Token is invalid because the specified organization nameKey is not one of the application's assigned account stores." }; - yield return new object[] { nameof(SessionTimedOut), SessionTimedOut, typeof(IdSiteSessionTimeoutException), 12001, 401, "The session on ID Site has timed out.", "The session on ID Site has timed out. This can occur if the user stays on ID Site without logging in, registering, or resetting a password." }; - yield return new object[] { nameof(ExpiredJwt), ExpiredJwt, typeof(ExpiredJwtException), 0, 0, $"JWT expired at 2015-08-27T19:51:00Z. Current time:", null }; - } - [Theory] - [MemberData(nameof(TestCases))] + [MemberData(nameof(ExceptionTests.TestCases), MemberType = typeof(ExceptionTests))] public void Handle_error(string id_, string jwtResponse, Type expectedExceptionType, int expectedCode, int expectedStatus, string expectedMessage, string expectedDeveloperMessage) { - var testApiKey = ClientApiKeys.Builder().SetId("2EV70AHRTYF0JOA7OEFO3SM29").SetSecret("goPUHQMkS4dlKwl5wtbNd91I+UrRehCsEDJrIrMruK8").Build(); + var testApiKey = ClientApiKeys.Builder() + .SetId("2EV70AHRTYF0JOA7OEFO3SM29") + .SetSecret("goPUHQMkS4dlKwl5wtbNd91I+UrRehCsEDJrIrMruK8") + .Build(); var fakeRequestExecutor = Substitute.For(); fakeRequestExecutor.ApiKey.Returns(testApiKey); diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_tests.cs b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_tests.cs index 46defcc7..9855a575 100644 --- a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_tests.cs +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteSyncCallbackHandler_tests.cs @@ -15,7 +15,6 @@ // using System; -using System.Collections.Generic; using NSubstitute; using Shouldly; using Stormpath.SDK.Api; @@ -39,34 +38,8 @@ public void Dispose() this.dataStore.Dispose(); } - private static readonly string RegisteredResponse = - "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + - "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + - "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + - "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + - "N1YiI6ZmFsc2UsInN0YXR1cyI6IlJFR0lTVEVSRUQifQ.4_yCiF6Cik2wep3iwyinTTcn5GHAEvCbIezO1aA5Kkk"; - - private static readonly string AuthenticatedResponse = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + - "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + - "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + - "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + - "N1YiI6ZmFsc2UsInN0YXR1cyI6IkFVVEhFTlRJQ0FURUQifQ.rpp0lsM1JDFeqkrOdwrtYOB1aitnLwhJuH3iaeuLIXY"; - - private static readonly string LogoutResponse = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3N0dXJkeS1zaGllbGQuaWQuc3Rvcm1w" + - "YXRoLmlvIiwic3ViIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hY2NvdW50cy83T3JhOEtmVkRFSVFQMzhLenJZZEFzIi" + - "wiYXVkIjoiMkVWNzBBSFJUWUYwSk9BN09FRk8zU00yOSIsImV4cCI6MjUwMjQ2NjY1MDAwLCJpYXQiOjE0MDcxOTg1NTAsImp0aSI6" + - "IjQzNnZra0hnazF4MzA1N3BDUHFUYWgiLCJpcnQiOiIxZDAyZDMzNS1mYmZjLTRlYTgtYjgzNi04NWI5ZTJhNmYyYTAiLCJpc05ld1" + - "N1YiI6ZmFsc2UsInN0YXR1cyI6IkxPR09VVCJ9.T6ClI4znHCElk1gMQoBpVvE9Jc5Vf4BEjrQ0IWvKYIc"; - - public static IEnumerable TestCases() - { - yield return new object[] { nameof(RegisteredResponse), RegisteredResponse, IdSiteResultStatus.Registered.Value, false, null }; - yield return new object[] { nameof(AuthenticatedResponse), AuthenticatedResponse, IdSiteResultStatus.Authenticated.Value, false, null }; - yield return new object[] { nameof(LogoutResponse), LogoutResponse, IdSiteResultStatus.Logout.Value, false, null }; - } - [Theory] - [MemberData(nameof(TestCases))] + [MemberData(nameof(CallbackHandlerTests.TestCases), MemberType = typeof(CallbackHandlerTests))] public void Handle_response(string id_, string jwtResponse, string expectedStatus, bool isNewAccount, string expectedState) { IAccountResult accountResultFromListener = null; diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteUrlBuilder_tests.cs b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteUrlBuilder_tests.cs index 0411a8ab..59a7feeb 100644 --- a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteUrlBuilder_tests.cs +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/DefaultIdSiteUrlBuilder_tests.cs @@ -15,7 +15,6 @@ // using System; -using System.Collections.Generic; using NSubstitute; using Shouldly; using Stormpath.SDK.Api; diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/ExceptionTests.cs b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/ExceptionTests.cs new file mode 100644 index 00000000..7a9fb1e6 --- /dev/null +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Impl/IdSite/ExceptionTests.cs @@ -0,0 +1,74 @@ +// +// Copyright (c) 2015 Stormpath, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +using System.Collections.Generic; +using Stormpath.SDK.IdSite; +using Stormpath.SDK.Jwt; + +namespace Stormpath.SDK.Tests.Impl.IdSite +{ + public class ExceptionTests + { + private static readonly string UnknownOrganization = + "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + + "IiOnsiY29kZSI6MTEwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBv" + + "cmdhbml6YXRpb24gbmFtZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4geW91ciBTdG9ybXBhdGggVGVuYW50LiIsIm1lc3NhZ2UiOiJUb2" + + "tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMDAxMSIsInN0YXR1cyI6" + + "NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlREU0Z1RvMVI5My" + + "IsImV4cCI6MzM1MDI0NjY2NTAwMCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGFoIn0.SDf6NM5S" + + "10fW7OiGwjcAEqWEPU-nd6YDkOZGBmw8G18"; + + private static readonly string IatAfterCurrentTime = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + + "IiOnsiY29kZSI6MTAwMTIsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIGlzc3VlZCBhdCB0" + + "aW1lIChpYXQpIGlzIGFmdGVyIHRoZSBjdXJyZW50IHRpbWUuIiwibWVzc2FnZSI6IlRva2VuIGlzIGludmFsaWQiLCJtb3JlSW5mby" + + "I6Imh0dHA6Ly9kb2NzLnN0b3JtcGF0aC5jb20vZXJyb3JzLzEwMDEyIiwic3RhdHVzIjo0MDB9LCJpc3MiOiJodHRwczovL2FwaS5z" + + "dG9ybXBhdGguY29tL3YxL2FwcGxpY2F0aW9ucy8yZXFieVo4cW8zNGVERTRnVG8xUjkzIiwiZXhwIjozMzUwMjQ2NjY1MDAwLCJpYX" + + "QiOjE0MDcxOTg1NTAsImp0aSI6IjQzNnZra0hnazF4MzA1N3BDUHFUYWgifQ.JT__dR0jC6fYZv9NYVC4k45mD5fAQfl_l7yElYm5JMk"; + + private static readonly string OrganizationNameKeyNotAssigned = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcnIiOnsiY" + + "29kZSI6MTEwMDMsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBvcmdhbml" + + "6YXRpb24gbmFtZUtleSBpcyBub3Qgb25lIG9mIHRoZSBhcHBsaWNhdGlvbidzIGFzc2lnbmVkIGFjY291bnQgc3RvcmVzLiIsIm1lc" + + "3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMTAwMyI" + + "sInN0YXR1cyI6NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlR" + + "EU0Z1RvMVI5MyIsImV4cCI6MzM1MDI0NjY2NTAwMCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGF" + + "oIn0.rN7yWI1v9IzsOuooe3cC1WKM4vpqB_vsa00mnXvj3nw"; + + private static readonly string SessionTimedOut = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcnIiOnsiY" + + "29kZSI6MTIwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUaGUgc2Vzc2lvbiBvbiBJRCBTaXRlIGhhcyB0aW1lZCBvdXQuIFRoaXMgY2F" + + "uIG9jY3VyIGlmIHRoZSB1c2VyIHN0YXlzIG9uIElEIFNpdGUgd2l0aG91dCBsb2dnaW5nIGluLCByZWdpc3RlcmluZywgb3IgcmVzZ" + + "XR0aW5nIGEgcGFzc3dvcmQuIiwibWVzc2FnZSI6IlRoZSBzZXNzaW9uIG9uIElEIFNpdGUgaGFzIHRpbWVkIG91dC4iLCJtb3JlSW5" + + "mbyI6Im1haWx0bzpzdXBwb3J0QHN0b3JtcGF0aC5jb20iLCJzdGF0dXMiOjQwMX0sImlzcyI6Imh0dHBzOi8vYXBpLnN0b3JtcGF0a" + + "C5jb20vdjEvYXBwbGljYXRpb25zLzJlcWJ5WjhxbzM0ZURFNGdUbzFSOTMiLCJleHAiOjMzNTAyNDY2NjUwMDAsImlhdCI6MTQwNzE" + + "5ODU1MCwianRpIjoiNDM2dmtrSGdrMXgzMDU3cENQcVRhaCJ9.xuW4L7HPe0M__mVK7jndY6g9Mcnuc1kanw_7bolOK3Y"; + + private static readonly string ExpiredJwt = "eyJ0eXAiOiJKV1QiLCJraWQiOiIyRVY3MEFIUlRZRjBKT0E3T0VGTzNTTTI5IiwiYWxnIjoiSFMyNTYifQ.eyJlcn" + + "IiOnsiY29kZSI6MTEwMDEsImRldmVsb3Blck1lc3NhZ2UiOiJUb2tlbiBpcyBpbnZhbGlkIGJlY2F1c2UgdGhlIHNwZWNpZmllZCBv" + + "cmdhbml6YXRpb24gbmFtZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4geW91ciBTdG9ybXBhdGggVGVuYW50LiIsIm1lc3NhZ2UiOiJUb2" + + "tlbiBpcyBpbnZhbGlkIiwibW9yZUluZm8iOiJodHRwOi8vZG9jcy5zdG9ybXBhdGguY29tL2Vycm9ycy8xMDAxMSIsInN0YXR1cyI6" + + "NDAwfSwiaXNzIjoiaHR0cHM6Ly9hcGkuc3Rvcm1wYXRoLmNvbS92MS9hcHBsaWNhdGlvbnMvMmVxYnlaOHFvMzRlREU0Z1RvMVI5My" + + "IsImV4cCI6MTQ0MDcwNTA2MCwiaWF0IjoxNDA3MTk4NTUwLCJqdGkiOiI0MzZ2a2tIZ2sxeDMwNTdwQ1BxVGFoIn0.OR7ho9XsZ7rC" + + "RYGumvw-SO0UzD2kEXg-janTAkxD_bE"; + + public static IEnumerable TestCases() + { + yield return new object[] { nameof(UnknownOrganization), UnknownOrganization, typeof(IdSiteRuntimeException), 11001, 400, "Token is invalid", "Token is invalid because the specified organization name key does not exist in your Stormpath Tenant." }; + yield return new object[] { nameof(IatAfterCurrentTime), IatAfterCurrentTime, typeof(InvalidIdSiteTokenException), 10012, 400, "Token is invalid", "Token is invalid because the issued at time (iat) is after the current time." }; + yield return new object[] { nameof(OrganizationNameKeyNotAssigned), OrganizationNameKeyNotAssigned, typeof(InvalidIdSiteTokenException), 11003, 400, "Token is invalid", "Token is invalid because the specified organization nameKey is not one of the application's assigned account stores." }; + yield return new object[] { nameof(SessionTimedOut), SessionTimedOut, typeof(IdSiteSessionTimeoutException), 12001, 401, "The session on ID Site has timed out.", "The session on ID Site has timed out. This can occur if the user stays on ID Site without logging in, registering, or resetting a password." }; + yield return new object[] { nameof(ExpiredJwt), ExpiredJwt, typeof(ExpiredJwtException), 0, 0, $"JWT expired at 2015-08-27T19:51:00Z. Current time: ", null }; + } + } +} diff --git a/Stormpath.SDK/Stormpath.SDK.Tests/Stormpath.SDK.Tests.csproj b/Stormpath.SDK/Stormpath.SDK.Tests/Stormpath.SDK.Tests.csproj index cfe38cf0..94c6b067 100644 --- a/Stormpath.SDK/Stormpath.SDK.Tests/Stormpath.SDK.Tests.csproj +++ b/Stormpath.SDK/Stormpath.SDK.Tests/Stormpath.SDK.Tests.csproj @@ -118,11 +118,13 @@ + +