yavsc/test/yavscTests/Mandatory/Remoting.cs

104 lines
3.4 KiB
C#

6 years ago
// // YavscWorkInProgress.cs
// /*
// paul 21/06/2018 10:11 20182018 6 21
// */
using System;
using System.Collections.Generic;
4 years ago
using System.IO;
6 years ago
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
4 years ago
using Microsoft.AspNet.Hosting;
3 years ago
using Microsoft.Extensions.OptionsModel;
4 years ago
using Microsoft.Extensions.PlatformAbstractions;
6 years ago
using Xunit;
6 years ago
using Xunit.Abstractions;
using Yavsc.Authentication;
using static OAuth.AspNet.AuthServer.Constants;
6 years ago
3 years ago
namespace yavscTests
6 years ago
{
[Collection("Yavsc Work In Progress")]
4 years ago
[Trait("regression", "oui")]
public class Remoting : BaseTestContext, IClassFixture<ServerSideFixture>
6 years ago
{
4 years ago
readonly RegiserAPI r;
public Remoting(ServerSideFixture serverFixture, ITestOutputHelper output)
6 years ago
: base(output, serverFixture)
6 years ago
{
4 years ago
r = new RegiserAPI(serverFixture, output);
6 years ago
}
6 years ago
[Theory]
6 years ago
[MemberData(nameof(GetLoginIntentData), parameters: 1)]
public async Task TestUserMayLogin
(
string clientId,
6 years ago
string clientSecret,
string scope,
string authorizeUrl,
string redirectUrl,
3 years ago
string accessTokenUrl
)
{
6 years ago
try
{
r.EnsureWeb();
6 years ago
var oauthor = new OAuthenticator(clientId, clientSecret, scope,
new Uri(authorizeUrl), new Uri(redirectUrl), new Uri(accessTokenUrl));
4 years ago
var query = new Dictionary<string, string>
{
3 years ago
[Parameters.Username] = Startup.TestingSetup.ValidCreds.UserName,
[Parameters.Password] = Startup.TestingSetup.ValidCreds.Password,
4 years ago
[Parameters.GrantType] = GrantTypes.Password
};
6 years ago
var result = await oauthor.RequestAccessTokenAsync(query);
Console.WriteLine(">> Got an output");
Console.WriteLine(Parameters.AccessToken + ": " + result[Parameters.AccessToken]);
Console.WriteLine(Parameters.TokenType + ": " + result[Parameters.TokenType]);
Console.WriteLine(Parameters.ExpiresIn + ": " + result[Parameters.ExpiresIn]);
Console.WriteLine(Parameters.RefreshToken + ": " + result[Parameters.RefreshToken]);
6 years ago
6 years ago
}
catch (Exception ex)
{
var webex = ex as WebException;
if (webex != null && webex.Status == (WebExceptionStatus)400)
{
3 years ago
if (Startup.TestingSetup.ValidCreds.UserName == "lame-user")
6 years ago
{
Console.WriteLine("Bad pass joe!");
return;
6 years ago
}
}
throw;
}
6 years ago
}
6 years ago
public static IEnumerable<object[]> GetLoginIntentData(int numTests)
{
var allData = new List<object[]>();
4 years ago
3 years ago
allData.Add(new object[] { "blouh", "profile",
"http://localhost:5000/authorize", "http://localhost:5000/oauth/success",
"http://localhost:5000/token", "http://localhost:5000/authorize"});
6 years ago
3 years ago
allData.Add(new object[] { "blouh", "profile",
"http://localhost:5000/authorize", "http://localhost:5000/oauth/success",
"http://localhost:5000/token", "http://localhost:5000/authorize"});
return allData.Take(numTests);;
6 years ago
}
6 years ago
}
}