mirror of
https://github.com/Ikatono/ComiServ.git
synced 2025-10-28 20:45:35 -05:00
Compare commits
2 Commits
7479dbf8f8
...
296190b79c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
296190b79c | ||
|
|
0082a6f219 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,4 @@
|
||||
|
||||
*.sln
|
||||
|
||||
#SQLite files
|
||||
*.db
|
||||
|
||||
41
ComiServ/Properties/launchSettings.json
Normal file
41
ComiServ/Properties/launchSettings.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:32904",
|
||||
"sslPort": 44308
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"http": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "swagger",
|
||||
"applicationUrl": "http://localhost:5265",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"https": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "swagger",
|
||||
"applicationUrl": "https://localhost:7020;http://localhost:5265",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "swagger",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
44
ComiServ/package-lock.json
generated
Normal file
44
ComiServ/package-lock.json
generated
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "ComiServ",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@types/react": "^18.3.4",
|
||||
"@types/react-dom": "^18.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/prop-types": {
|
||||
"version": "15.7.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
|
||||
"integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/react": {
|
||||
"version": "18.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz",
|
||||
"integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/react-dom": {
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
|
||||
"integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/react": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
||||
6
ComiServ/package.json
Normal file
6
ComiServ/package.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"@types/react": "^18.3.4",
|
||||
"@types/react-dom": "^18.3.0"
|
||||
}
|
||||
}
|
||||
38
ComiServUnitTest/AuthenticationServiceTests.cs
Normal file
38
ComiServUnitTest/AuthenticationServiceTests.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ComiServ.Entities;
|
||||
using ComiServ.Services;
|
||||
|
||||
namespace ComiServUnitTest;
|
||||
|
||||
[TestClass]
|
||||
public class AuthenticationServiceTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void FailAuth()
|
||||
{
|
||||
IAuthenticationService auth = new AuthenticationService();
|
||||
Assert.IsFalse(auth.Tested);
|
||||
auth.FailAuth();
|
||||
Assert.IsTrue(auth.Tested);
|
||||
Assert.IsNull(auth.User);
|
||||
}
|
||||
[TestMethod]
|
||||
public void AuthenticateUser()
|
||||
{
|
||||
IAuthenticationService auth = new AuthenticationService();
|
||||
User user = new()
|
||||
{
|
||||
Username = "NewUser",
|
||||
UserTypeId = UserTypeEnum.User,
|
||||
};
|
||||
Assert.IsFalse(auth.Tested);
|
||||
auth.Authenticate(user);
|
||||
Assert.IsTrue(auth.Tested);
|
||||
Assert.IsNotNull(auth.User);
|
||||
Assert.AreSame(user, auth.User);
|
||||
}
|
||||
}
|
||||
28
ComiServUnitTest/ComiServUnitTest.csproj
Normal file
28
ComiServUnitTest/ComiServUnitTest.csproj
Normal file
@@ -0,0 +1,28 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.8" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ComiServ\ComiServ.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
87
ComiServUnitTest/PaginatedTests.cs
Normal file
87
ComiServUnitTest/PaginatedTests.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
using ComiServ.Models;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Conventions;
|
||||
using System.CodeDom;
|
||||
using System.Security.Policy;
|
||||
|
||||
namespace ComiServUnitTest;
|
||||
|
||||
[TestClass]
|
||||
public class PaginatedTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void PageUnderUnderflow()
|
||||
{
|
||||
const int pageNum = 1;
|
||||
const int pageSize = 20;
|
||||
const int dataSize = 30;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var page = new Paginated<int>(pageSize, pageNum, data);
|
||||
Assert.IsTrue(page.Last);
|
||||
Assert.AreEqual(pageSize, page.Max);
|
||||
Assert.AreEqual(pageNum, page.Page);
|
||||
Assert.AreEqual(10, page.Count);
|
||||
Assert.AreEqual(page.Items.Count, page.Count);
|
||||
Assert.AreEqual(20, page.Items.First());
|
||||
Assert.AreEqual(data.Last(), page.Items.Last());
|
||||
}
|
||||
[TestMethod]
|
||||
public void PageOverflow()
|
||||
{
|
||||
const int pageNum = 2;
|
||||
const int pageSize = 30;
|
||||
const int dataSize = 150;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var page = new Paginated<int>(pageSize, pageNum, data);
|
||||
Assert.IsFalse(page.Last);
|
||||
Assert.AreEqual(pageSize, page.Max);
|
||||
Assert.AreEqual(pageNum, page.Page);
|
||||
Assert.AreEqual(pageSize, page.Count);
|
||||
Assert.AreEqual(page.Items.Count, page.Count);
|
||||
Assert.AreEqual(pageSize*pageNum, page.Items.First());
|
||||
Assert.AreEqual(pageSize*(pageNum+1)-1, page.Items.Last());
|
||||
}
|
||||
[TestMethod]
|
||||
public void PageExact()
|
||||
{
|
||||
const int pageNum = 1;
|
||||
const int pageSize = 30;
|
||||
const int dataSize = 60;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var page = new Paginated<int>(pageSize, pageNum, data);
|
||||
Assert.IsTrue(page.Last);
|
||||
Assert.AreEqual(pageSize, page.Max);
|
||||
Assert.AreEqual(pageNum, page.Page);
|
||||
Assert.AreEqual(pageSize, page.Count);
|
||||
Assert.AreEqual(page.Items.Count, page.Count);
|
||||
Assert.AreEqual(pageSize * pageNum, page.Items.First());
|
||||
Assert.AreEqual(data.Last(), page.Items.Last());
|
||||
}
|
||||
[TestMethod]
|
||||
public void PageEmpty()
|
||||
{
|
||||
const int pageNum = 0;
|
||||
const int pageSize = 10;
|
||||
const int dataSize = 0;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var page = new Paginated<int>(pageSize, pageNum, data);
|
||||
Assert.IsTrue(page.Last);
|
||||
Assert.AreEqual(pageSize, page.Max);
|
||||
Assert.AreEqual(pageNum, page.Page);
|
||||
Assert.AreEqual(page.Items.Count, page.Count);
|
||||
Assert.IsFalse(page.Items.Any());
|
||||
}
|
||||
[TestMethod]
|
||||
public void PageDoesntExist()
|
||||
{
|
||||
const int pageNum = 5;
|
||||
const int pageSize = 20;
|
||||
const int dataSize = 50;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var page = new Paginated<int>(pageSize, pageNum, data);
|
||||
Assert.IsTrue(page.Last);
|
||||
Assert.AreEqual(pageSize, page.Max);
|
||||
Assert.AreEqual(pageNum, page.Page);
|
||||
Assert.AreEqual(page.Items.Count, page.Count);
|
||||
Assert.IsFalse(page.Items.Any());
|
||||
}
|
||||
}
|
||||
67
ComiServUnitTest/TruncatedTests.cs
Normal file
67
ComiServUnitTest/TruncatedTests.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ComiServ.Models;
|
||||
|
||||
namespace ComiServUnitTest;
|
||||
|
||||
[TestClass]
|
||||
public class TruncatedTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void TruncationUnderflow()
|
||||
{
|
||||
const int truncMax = 20;
|
||||
const int dataSize = 10;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var trunc = new Truncated<int>(truncMax, data);
|
||||
Assert.IsTrue(trunc.Complete);
|
||||
Assert.AreEqual(truncMax, trunc.Max);
|
||||
Assert.AreEqual(dataSize, trunc.Count);
|
||||
Assert.AreEqual(trunc.Items.Count, trunc.Count);
|
||||
Assert.AreEqual(data.First(), trunc.Items.First());
|
||||
Assert.AreEqual(data.Last(), trunc.Items.Last());
|
||||
}
|
||||
[TestMethod]
|
||||
public void TruncationOverflow()
|
||||
{
|
||||
const int truncMax = 20;
|
||||
const int dataSize = 30;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var trunc = new Truncated<int>(truncMax, data);
|
||||
Assert.IsFalse(trunc.Complete);
|
||||
Assert.AreEqual(truncMax, trunc.Max);
|
||||
Assert.AreEqual(truncMax, trunc.Count);
|
||||
Assert.AreEqual(trunc.Items.Count, trunc.Count);
|
||||
Assert.AreEqual(data.First(), trunc.Items.First());
|
||||
Assert.AreEqual(truncMax - 1, trunc.Items.Last());
|
||||
}
|
||||
[TestMethod]
|
||||
public void TruncationExact()
|
||||
{
|
||||
const int truncMax = 5;
|
||||
const int dataSize = 5;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var trunc = new Truncated<int>(truncMax, data);
|
||||
Assert.IsTrue(trunc.Complete);
|
||||
Assert.AreEqual(truncMax, trunc.Max);
|
||||
Assert.AreEqual(truncMax, trunc.Count);
|
||||
Assert.AreEqual(trunc.Items.Count, trunc.Count);
|
||||
Assert.AreEqual(data.First(), trunc.Items.First());
|
||||
Assert.AreEqual(data.Last(), trunc.Items.Last());
|
||||
}
|
||||
[TestMethod]
|
||||
public void TruncationEmpty()
|
||||
{
|
||||
const int truncMax = 5;
|
||||
const int dataSize = 0;
|
||||
var data = Enumerable.Range(0, dataSize).ToArray();
|
||||
var trunc = new Truncated<int>(truncMax, data);
|
||||
Assert.IsTrue(trunc.Complete);
|
||||
Assert.AreEqual(truncMax, trunc.Max);
|
||||
Assert.AreEqual(0, trunc.Count);
|
||||
Assert.AreEqual(trunc.Items.Count, trunc.Count);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user