diff --git a/CodeToXMI.sln.DotSettings.user b/CodeToXMI.sln.DotSettings.user index e63276796f74fd719f9bdb12a5dd92323822f04c..1dd7c1da3d3a54c42c9c53b4a5e066bffccdf3d8 100644 --- a/CodeToXMI.sln.DotSettings.user +++ b/CodeToXMI.sln.DotSettings.user @@ -1,7 +1,7 @@ <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"><SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisionsAndActions #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <TestAncestor> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions</TestId> @@ -16,6 +16,11 @@ <TestAncestor> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions</TestId> </TestAncestor> +</SessionState></s:String> + <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=787f49f1_002D5ae8_002D4593_002Da806_002Dbdff78c88abc/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="AuthenticationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <TestAncestor> + <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.WebApiTests.AuthenticationTest</TestId> + </TestAncestor> </SessionState></s:String> <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=89ec26b2_002Dc3eb_002D4d79_002D97c5_002D0b5722ace381/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisionsAndActions #3" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <TestAncestor> @@ -28,13 +33,14 @@ <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildActivityDiagramWithDecisionsAndActions</TestId> </TestAncestor> </SessionState></s:String> - <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=d5334459_002D70ab_002D4733_002D874a_002D3629f29a0297/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="BuildActivityDiagramWithDecisionsAndActions #5" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=d5334459_002D70ab_002D4733_002D874a_002D3629f29a0297/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="BuildActivityDiagramWithDecisionsAndActions #5" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <TestAncestor> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests</TestId> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ClassDiagramTests</TestId> + <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.WebApiTests</TestId> </TestAncestor> </SessionState></s:String> - <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=ea6b864b_002D2fca_002D4192_002D9701_002D8b0ec6a1f0b5/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="ClassDiagramTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=ea6b864b_002D2fca_002D4192_002D9701_002D8b0ec6a1f0b5/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="ClassDiagramTests" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <TestAncestor> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ClassDiagramTests</TestId> <TestId>NUnit3x::0F37435B-F6C5-40D0-8250-192C843D1465::net7.0::UnitTest.ActivityDiagramTests.BuildEmptyActivityDiagram</TestId> diff --git a/Database/DatabaseContext.cs b/Database/DatabaseContext.cs index 42f5dd02578193de32a67f1e60002b6b0a12f1e2..ff87292a208d51d556af171c0a5c7c01fd7dcc5f 100644 --- a/Database/DatabaseContext.cs +++ b/Database/DatabaseContext.cs @@ -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) { diff --git a/UnitTest/UnitTest.csproj b/UnitTest/UnitTest.csproj index 75ee2e6dfe1cf0f391c958714be64929a36444ce..07a023dd86000062e9d8089316894637b6ed05e4 100644 --- a/UnitTest/UnitTest.csproj +++ b/UnitTest/UnitTest.csproj @@ -20,6 +20,7 @@ <ItemGroup> <ProjectReference Include="..\DiagramBuilder\DiagramBuilder.csproj" /> + <ProjectReference Include="..\WebAPI\WebAPI.csproj" /> </ItemGroup> </Project> diff --git a/UnitTest/WebApiTests.cs b/UnitTest/WebApiTests.cs new file mode 100644 index 0000000000000000000000000000000000000000..9c8e820c3e1f2fd8a58bb8dc844f35ab7d4e1d29 --- /dev/null +++ b/UnitTest/WebApiTests.cs @@ -0,0 +1,50 @@ +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 diff --git a/WebAPI/Controllers/ApiController.cs b/WebAPI/Controllers/ApiController.cs index 69eb96f778494515a7596a317265e84e69772cea..6c6cb43ead4f55ac3f297bc8996b6f4e0574b7ce 100644 --- a/WebAPI/Controllers/ApiController.cs +++ b/WebAPI/Controllers/ApiController.cs @@ -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