mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Tests for the listing uploaded files by user
This commit is contained in:
parent
5841367e64
commit
8b9210eeb0
@ -2,9 +2,11 @@
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using Wabbajack.BuildServer.Model.Models;
|
||||
using Wabbajack.BuildServer.Models;
|
||||
using Wabbajack.Common;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
using Xunit.Priority;
|
||||
|
||||
namespace Wabbajack.BuildServer.Test
|
||||
{
|
||||
@ -16,10 +18,12 @@ namespace Wabbajack.BuildServer.Test
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
[Fact, Priority(1)]
|
||||
public async Task CanIngestMongoDBExports()
|
||||
{
|
||||
@"sql\uploaded_files_ingest.json".RelativeTo(AbsolutePath.EntryPoint).CopyTo(Fixture.ServerTempFolder.Combine("uploaded_files_ingest.json"));
|
||||
var data = await @"sql\uploaded_files_ingest.json".RelativeTo(AbsolutePath.EntryPoint).ReadAllTextAsync();
|
||||
data = data.Replace("<testuser>", Fixture.User);
|
||||
await Fixture.ServerTempFolder.Combine("uploaded_files_ingest.json").WriteAllTextAsync(data);
|
||||
using var response = await _authedClient.GetAsync(MakeURL("ingest/uploaded_files/uploaded_files_ingest.json"));
|
||||
var result = await response.Content.ReadAsStringAsync();
|
||||
Utils.Log("Loaded: " + result);
|
||||
@ -27,5 +31,21 @@ namespace Wabbajack.BuildServer.Test
|
||||
|
||||
Assert.Equal("4", result);
|
||||
}
|
||||
|
||||
[Fact, Priority(1)]
|
||||
public async Task CanLoadUploadedFiles()
|
||||
{
|
||||
var result = (await _authedClient.GetStringAsync(MakeURL("uploaded_files/list"))).FromJSONString<string[]>();
|
||||
Utils.Log("Loaded: " + result);
|
||||
|
||||
|
||||
Assert.True(result.Length >= 2, result.Length.ToString());
|
||||
Assert.Contains("file1-90db7c47-a8ae-4a62-9c2e-b7d357a16665.zip", result);
|
||||
Assert.Contains("file2-63f8f868-0f4d-4997-922b-ee952984973a.zip", result);
|
||||
// These are from other users
|
||||
Assert.DoesNotContain("file2-1f18f301-67eb-46c9-928a-088f6666bf61.zip", result);
|
||||
Assert.DoesNotContain("file3-17b3e918-8409-48e6-b7ff-6af858bfd1ba.zip", result);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="Xunit.Priority" Version="1.1.6" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
|
||||
<PackageReference Include="coverlet.collector" Version="1.0.1" />
|
||||
<PackageReference Include="System.Data.SqlClient" Version="4.8.1" />
|
||||
|
@ -1,4 +1,4 @@
|
||||
{"_id":"90db7c47-a8ae-4a62-9c2e-b7d357a16665","Name":"file1.zip","Size":{"$numberInt":"56946233"},"Hash":"8t3PgB/J/Ps=","Uploader":"total","UploadDate":{"$date":{"$numberLong":"1579472623183"}}}
|
||||
{"_id":"63f8f868-0f4d-4997-922b-ee952984973a","Name":"file2.zip","Size":{"$numberInt":"558782831"},"Hash":"XYl4fIcAUWo=","Uploader":"total","UploadDate":{"$date":{"$numberLong":"1579650208226"}},"CDNName":"wabbajackpush"}
|
||||
{"_id":"1f18f301-67eb-46c9-928a-088f6666bf61","Name":"file2.zip","Size":{"$numberInt":"397558132"},"Hash":"uhXJw1MTdJI=","Uploader":"timboman","UploadDate":{"$date":{"$numberLong":"1579661152181"}},"CDNName":"wabbajackpush"}
|
||||
{"_id":"17b3e918-8409-48e6-b7ff-6af858bfd1ba","Name":"file3.zip","Size":{"$numberInt":"633419999"},"Hash":"yyDD50X2kNM=","Uploader":"timboman","UploadDate":{"$date":{"$numberLong":"1579662459461"}},"CDNName":"wabbajackpush"}
|
||||
{"_id":"90db7c47-a8ae-4a62-9c2e-b7d357a16665","Name":"file1.zip","Size":{"$numberInt":"56946233"},"Hash":"8t3PgB/J/Ps=","Uploader":"<testuser>","UploadDate":{"$date":{"$numberLong":"1579472623183"}}}
|
||||
{"_id":"63f8f868-0f4d-4997-922b-ee952984973a","Name":"file2.zip","Size":{"$numberInt":"558782831"},"Hash":"XYl4fIcAUWo=","Uploader":"<testuser>","UploadDate":{"$date":{"$numberLong":"1579650208226"}},"CDNName":"wabbajackpush"}
|
||||
{"_id":"1f18f301-67eb-46c9-928a-088f6666bf61","Name":"file2.zip","Size":{"$numberInt":"397558132"},"Hash":"uhXJw1MTdJI=","Uploader":"other","UploadDate":{"$date":{"$numberLong":"1579661152181"}},"CDNName":"wabbajackpush"}
|
||||
{"_id":"17b3e918-8409-48e6-b7ff-6af858bfd1ba","Name":"file3.zip","Size":{"$numberInt":"633419999"},"Hash":"yyDD50X2kNM=","Uploader":"other","UploadDate":{"$date":{"$numberLong":"1579662459461"}},"CDNName":"wabbajackpush"}
|
||||
|
@ -205,8 +205,8 @@ namespace Wabbajack.BuildServer.Controllers
|
||||
{
|
||||
var user = User.FindFirstValue(ClaimTypes.Name);
|
||||
Utils.Log($"List Uploaded Files {user}");
|
||||
var files = await Db.UploadedFiles.AsQueryable().Where(f => f.Uploader == user).ToListAsync();
|
||||
return Ok(files.OrderBy(f => f.UploadDate).Select(f => f.MungedName).ToArray().ToJSON(prettyPrint:true));
|
||||
var files = await SQL.AllUploadedFilesForUser(user);
|
||||
return Ok(files.OrderBy(f => f.UploadDate).Select(f => f.MungedName ).ToArray().ToJSON(prettyPrint:true));
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
|
@ -242,6 +242,7 @@ namespace Wabbajack.BuildServer.Model.Models
|
||||
static SqlService()
|
||||
{
|
||||
SqlMapper.AddTypeHandler(new PayloadMapper());
|
||||
SqlMapper.AddTypeHandler(new HashMapper());
|
||||
}
|
||||
|
||||
public class PayloadMapper : SqlMapper.TypeHandler<AJobPayload>
|
||||
@ -257,6 +258,19 @@ namespace Wabbajack.BuildServer.Model.Models
|
||||
}
|
||||
}
|
||||
|
||||
class HashMapper : SqlMapper.TypeHandler<Hash>
|
||||
{
|
||||
public override void SetValue(IDbDataParameter parameter, Hash value)
|
||||
{
|
||||
parameter.Value = (long)value;
|
||||
}
|
||||
|
||||
public override Hash Parse(object value)
|
||||
{
|
||||
return Hash.FromLong((long)value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
@ -277,5 +291,12 @@ namespace Wabbajack.BuildServer.Model.Models
|
||||
CDNName = uf.CDNName
|
||||
});
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<UploadedFile>> AllUploadedFilesForUser(string user)
|
||||
{
|
||||
await using var conn = await Open();
|
||||
return await conn.QueryAsync<UploadedFile>("SELECT * FROM dbo.UploadedFiles WHERE UploadedBy = @uploadedBy",
|
||||
new {UploadedBy = user});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user