created some unit tests

This commit is contained in:
Cameron
2024-09-07 20:32:20 -05:00
parent 0082a6f219
commit 296190b79c
4 changed files with 220 additions and 0 deletions

View 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);
}
}

View 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>

View 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());
}
}

View 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);
}
}