Skip to content
Snippets Groups Projects
Commit 546012c8 authored by Jakub Konvička's avatar Jakub Konvička
Browse files

feat: Add API test file

parent 06b9ecef
Branches
1 merge request!15merge: develop into main
Pipeline #906 passed with stages
in 5 minutes and 14 seconds
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/Environment/Hierarchy/Build/BuildTool/CustomBuildToolPath/@EntryValue">/usr/local/share/dotnet/sdk/7.0.404/MSBuild.dll</s:String>
<s:Int64 x:Key="/Default/Environment/Hierarchy/Build/BuildTool/MsbuildVersion/@EntryValue">1114112</s:Int64>
<s:String x:Key="/Default/Environment/Highlighting/HighlightingSourceSnapshotLocation/@EntryValue">/Users/jakubkonvicka/Library/Caches/JetBrains/Rider2023.3/resharper-host/temp/Rider/vAny/CoverageData/_CodeToXMI.401400098/Snapshot/snapshot.utdcvr</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=1172169d_002D8cd5_002D4c97_002D94b5_002D78b35c14dd26/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisionsAndActions #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions&lt;/TestId&gt;
......@@ -16,6 +16,11 @@
&lt;TestAncestor&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions&lt;/TestId&gt;
&lt;/TestAncestor&gt;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=787f49f1_002D5ae8_002D4593_002Da806_002Dbdff78c88abc/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="AuthenticationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.WebApiTests.AuthenticationTest&lt;/TestId&gt;
&lt;/TestAncestor&gt;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=89ec26b2_002Dc3eb_002D4d79_002D97c5_002D0b5722ace381/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisionsAndActions #3" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
......@@ -28,13 +33,14 @@
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions&lt;/TestId&gt;
&lt;/TestAncestor&gt;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=d5334459_002D70ab_002D4733_002D874a_002D3629f29a0297/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="BuildActivityDiagramWithDecisionsAndActions #5" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=d5334459_002D70ab_002D4733_002D874a_002D3629f29a0297/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisionsAndActions #5" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests&lt;/TestId&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ClassDiagramTests&lt;/TestId&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.WebApiTests&lt;/TestId&gt;
&lt;/TestAncestor&gt;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=ea6b864b_002D2fca_002D4192_002D9701_002D8b0ec6a1f0b5/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="ClassDiagramTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=ea6b864b_002D2fca_002D4192_002D9701_002D8b0ec6a1f0b5/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="ClassDiagramTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;TestAncestor&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ClassDiagramTests&lt;/TestId&gt;
&lt;TestId&gt;NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildEmptyActivityDiagram&lt;/TestId&gt;
......
......@@ -28,12 +28,12 @@ public class DatabaseContext : DbContext
.IsUnique();
}
public static void EnsureSeedData(DatabaseContext context)
public static void EnsureSeedData(DatabaseContext context, string path = "default-users.json")
{
context.Database.EnsureCreated(); // Ensure database is created
if (File.Exists("default-users.json"))
if (File.Exists(path))
{
var seedUsers = JsonConvert.DeserializeObject<List<SeedUser>>(File.ReadAllText("default-users.json"));
var seedUsers = JsonConvert.DeserializeObject<List<SeedUser>>(File.ReadAllText(path));
foreach (var seedUser in seedUsers)
{
......
......@@ -20,6 +20,7 @@
<ItemGroup>
<ProjectReference Include="..\DiagramBuilder\DiagramBuilder.csproj" />
<ProjectReference Include="..\WebAPI\WebAPI.csproj" />
</ItemGroup>
</Project>
using Database;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using WebAPI.Controllers;
using WebAPI.DTO;
namespace UnitTest;
public class WebApiTests
{
[SetUp]
public void Setup()
{
//create db json seed file
SeedUser seedUser = new SeedUser()
{
Id = 1,
Name = "TestUser",
Password = "TestPassword"
};
//store to file
string json = JsonConvert.SerializeObject(new List<SeedUser>{seedUser});
File.WriteAllText("users.json", json);
}
[Test]
public void AuthenticationTest()
{
var path = Path.Join(Directory.GetCurrentDirectory(), "users.json");
ApiController apiController = new ApiController(null, null, path);
var model = new AuthenticateUserModel()
{
Username = "TestUser",
Password = "TestPassword"
};
var result = apiController.AuthenticateUserPassword(model);
//assert that returns Ok and parse token
Assert.IsTrue(result is OkObjectResult);
var okResult = result as OkObjectResult;
var token = okResult.Value as string;
Assert.IsTrue(!string.IsNullOrEmpty(token));
}
}
\ No newline at end of file
......@@ -23,12 +23,12 @@ namespace WebAPI.Controllers
private readonly IConfiguration _configuration;
private int tokenValidityMinutes => _configuration.GetValue<int>("UserManagement:TokenValidityMinutes");
public ApiController(ILogger<ApiController> logger, IConfiguration configuration)
public ApiController(ILogger<ApiController> logger, IConfiguration configuration, string dbPath)
{
_logger = logger;
_configuration = configuration;
using var db = new DatabaseContext();
DatabaseContext.EnsureSeedData(db);
DatabaseContext.EnsureSeedData(db, dbPath);
}
#region SourceCodeTransformation
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment