refactoring

This commit is contained in:
2018-08-02 12:28:13 +02:00
parent 27dfd14989
commit c6a0b6bc75

View File

@ -4,6 +4,7 @@
// */ // */
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Xunit; using Xunit;
@ -18,57 +19,83 @@ namespace test
public class YavscWorkInProgress : BaseTestContext, IClassFixture<ServerSideFixture> public class YavscWorkInProgress : BaseTestContext, IClassFixture<ServerSideFixture>
{ {
public YavscWorkInProgress(ServerSideFixture serverFixture, ITestOutputHelper output) public YavscWorkInProgress(ServerSideFixture serverFixture, ITestOutputHelper output)
: base (output, serverFixture) : base(output, serverFixture)
{ {
} }
[Theory] [Theory]
[InlineData("d9be5e97-c19d-42e4-b444-0e65863b19e1","blouh","profile", [MemberData(nameof(GetLoginIntentData), parameters: 1)]
"http://localhost:5000/authorize",
"http://localhost:5000/oauth/success",
"http://localhost:5000/token",
"joe",
"badpass"
)]
public async Task TestUserMayLogin public async Task TestUserMayLogin
( (
string clientId, string clientId,
string clientSecret, string clientSecret,
string scope, string scope,
string authorizeUrl, string authorizeUrl,
string redirectUrl, string redirectUrl,
string accessTokenUrl, string accessTokenUrl,
string login, string login,
string pass string pass
) )
{ {
try { try
var oauthor =new OAuthenticator( clientId, clientSecret, scope, {
new Uri( authorizeUrl) , new Uri(redirectUrl) , new Uri(accessTokenUrl)); var oauthor = new OAuthenticator(clientId, clientSecret, scope,
var query = new Dictionary<string,string>(); new Uri(authorizeUrl), new Uri(redirectUrl), new Uri(accessTokenUrl));
query[Parameters.Username]=login; var query = new Dictionary<string, string>();
query[Parameters.Password]=pass; query[Parameters.Username] = login;
query[Parameters.GrantType]=GrantTypes.Password; query[Parameters.Password] = pass;
var result = await oauthor.RequestAccessTokenAsync(query); query[Parameters.GrantType] = GrantTypes.Password;
Console.WriteLine(">> Got an output"); var result = await oauthor.RequestAccessTokenAsync(query);
Console.WriteLine(Parameters.AccessToken+": "+result[Parameters.AccessToken]); Console.WriteLine(">> Got an output");
Console.WriteLine(Parameters.TokenType+": "+result[Parameters.TokenType]); Console.WriteLine(Parameters.AccessToken + ": " + result[Parameters.AccessToken]);
Console.WriteLine(Parameters.ExpiresIn+": "+result[Parameters.ExpiresIn]); Console.WriteLine(Parameters.TokenType + ": " + result[Parameters.TokenType]);
Console.WriteLine(Parameters.RefreshToken+": "+result[Parameters.RefreshToken]); Console.WriteLine(Parameters.ExpiresIn + ": " + result[Parameters.ExpiresIn]);
Console.WriteLine(Parameters.RefreshToken + ": " + result[Parameters.RefreshToken]);
} }
catch (Exception ex) catch (Exception ex)
{ {
var webex = ex as WebException; var webex = ex as WebException;
if (webex!=null && webex.Status == (WebExceptionStatus)400) if (webex != null && webex.Status == (WebExceptionStatus)400)
{ {
if (login == "joe") { if (login == "joe")
{
Console.WriteLine("Bad pass joe!"); Console.WriteLine("Bad pass joe!");
return; return;
} }
} }
throw; throw;
} }
} }
public struct LoginIntentData
{
public string clientId;
public string clientSecret;
public string scope;
public string authorizeUrl;
public string redirectUrl;
public string accessTokenUrl;
public string login;
public string pass;
}
public static IEnumerable<object[]> GetLoginIntentData(int numTests)
{
var allData = new List<object[]>
{
new object[] {"d9be5e97-c19d-42e4-b444-0e65863b19e1", "blouh", "profile",
"http://localhost:5000/authorize", "http://localhost:5000/oauth/success",
"http://localhost:5000/token","joe", "badpass"
},
new object[] { -4, -6, -10 },
new object[] { -2, 2, 0 },
new object[] { int.MinValue, -1, int.MaxValue },
};
return allData.Take(numTests);
}
} }
} }