mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-05-12 21:02:27 +00:00
Add CanSerializeBack, CanUseToken, and ShouldReturnForbiddenWhenNotAuthenticated authentication tests
This commit is contained in:
parent
5052d19656
commit
bd8b86b65c
3 changed files with 76 additions and 7 deletions
|
@ -1,7 +1,10 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.TestHost;
|
||||
using ProjectLighthouse.Serialization;
|
||||
using ProjectLighthouse.Types;
|
||||
|
||||
namespace ProjectLighthouse.Tests {
|
||||
|
@ -12,8 +15,37 @@ namespace ProjectLighthouse.Tests {
|
|||
public LighthouseTest() {
|
||||
this.Server = new TestServer(new WebHostBuilder()
|
||||
.UseStartup<Startup>());
|
||||
|
||||
this.Client = this.Server.CreateClient();
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage> AuthenticateResponse(int number = 0) {
|
||||
const char nullChar = (char)0x00;
|
||||
const char sepChar = (char)0x20;
|
||||
const string username = "unitTestUser";
|
||||
|
||||
string stringContent = $"{nullChar}{sepChar}{username}{number}{nullChar}";
|
||||
|
||||
HttpResponseMessage response = await this.Client.PostAsync("/LITTLEBIGPLANETPS3_XML/login", new StringContent(stringContent));
|
||||
return response;
|
||||
}
|
||||
|
||||
public async Task<LoginResult> Authenticate(int number = 0) {
|
||||
HttpResponseMessage response = await this.AuthenticateResponse(number);
|
||||
|
||||
string responseContent = LbpSerializer.StringElement("loginResult", await response.Content.ReadAsStringAsync());
|
||||
|
||||
XmlSerializer serializer = new(typeof(LoginResult));
|
||||
return (LoginResult)serializer.Deserialize(new StringReader(responseContent))!;
|
||||
}
|
||||
|
||||
public Task<HttpResponseMessage> AuthenticatedRequest(string endpoint, string mmAuth) => AuthenticatedRequest(endpoint, mmAuth, HttpMethod.Get);
|
||||
|
||||
public Task<HttpResponseMessage> AuthenticatedRequest(string endpoint, string mmAuth, HttpMethod method) {
|
||||
using var requestMessage = new HttpRequestMessage(method, endpoint);
|
||||
requestMessage.Headers.Add("Cookie", mmAuth);
|
||||
|
||||
return this.Client.SendAsync(requestMessage);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue