Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
2ea5ca4
SW-47 * Setup api
Thekid2002 Oct 19, 2023
8249030
SW-47 * Fixed worthless migrations
Thekid2002 Oct 19, 2023
1b6027f
Merge pull request #3 from Trimesteret/SW-47
Thekid2002 Oct 19, 2023
7f0b762
SW-65 * added authentication
Thekid2002 Oct 29, 2023
8d314ec
SW-65 * Trying me fucking hardest on authorization
Thekid2002 Oct 29, 2023
87dc813
SW-65 * Jeg vil hellere dø end at fikse det her
Thekid2002 Nov 3, 2023
b5ba26b
in progress
Thekid2002 Nov 6, 2023
ddf1032
SW-65 * Fixed some of the public private
Thekid2002 Nov 6, 2023
1daec83
Merge branch 'SW-65' of https://github.com/Trimesteret/API into SW-65
Thekid2002 Nov 6, 2023
7d23229
SW-65 * Fixed public private fields and dbcontext
Thekid2002 Nov 6, 2023
043dbf1
SW-65 * Look minor changes
Thekid2002 Nov 8, 2023
90464e4
SW-65 * Fixed verifytoken to use exceptions
Thekid2002 Nov 8, 2023
d76dd63
SW-65 * Fixed exceptions
Thekid2002 Nov 8, 2023
831d51c
Merge pull request #5 from Trimesteret/SW-65
Thekid2002 Nov 8, 2023
658f4ac
Defining classes
Thekid2002 Nov 15, 2023
5736dff
SW-103 * CreateItem start
Thekid2002 Nov 17, 2023
1c784e8
SW-103 * Fixed alot of services
Thekid2002 Nov 17, 2023
71d391e
Merge pull request #6 from Trimesteret/SW-103
Thekid2002 Nov 17, 2023
d382bc7
SW-108 * Fixed issues with the itemtypes
Thekid2002 Nov 19, 2023
fcbf33a
SW-108 * Added wine spec
Thekid2002 Nov 21, 2023
e8f8af1
Merge pull request #7 from Trimesteret/SW-108
Thekid2002 Nov 21, 2023
5125663
API set up for getitems
ChristofferGamel Nov 21, 2023
fdbdd79
SW-99 * Fixed model and migrations
Thekid2002 Nov 21, 2023
b01b966
Merge pull request #9 from Trimesteret/SW-99
Thekid2002 Nov 21, 2023
ce97c6e
SW-108 * Added the getSelf and editSelf
Thekid2002 Nov 22, 2023
4abe615
SW-108 * Formatering
Thekid2002 Nov 22, 2023
6fc1a08
Merge branch 'develop' into SW-108
Thekid2002 Nov 22, 2023
ff6db00
SW-108 * Renamed variables
Thekid2002 Nov 22, 2023
044e05f
Merge pull request #10 from Trimesteret/SW-108
Thekid2002 Nov 22, 2023
11705ce
SW-109 * Fixed merge conflict
Nov 22, 2023
578c697
Merge branch 'develop' into SW-109
Nov 22, 2023
900688d
Fixed wine constructor
Thekid2002 Nov 22, 2023
6a36d80
Merge pull request #12 from Trimesteret/HotfixWineConstructor
Thekid2002 Nov 22, 2023
efe63af
Merge branch 'develop' into SW-109
Nov 22, 2023
91ad5e5
SW-109 * WIP Sorting wine on API instead of on client
Nov 22, 2023
1d22cff
SW-109 * Fixed webshop
Thekid2002 Nov 23, 2023
4963f64
Merge pull request #13 from Trimesteret/SW-109
Thekid2002 Nov 23, 2023
58714d3
SW-100 * Added mass to item
Thekid2002 Nov 23, 2023
a019302
SW-116 * Fixed hashing and authorization is now atleast
Thekid2002 Nov 24, 2023
d1c0d33
Merge pull request #15 from Trimesteret/SW-116
Thekid2002 Nov 24, 2023
8061d45
setup for post + enum fixes, UNTESTED
ChristofferGamel Nov 25, 2023
288c4fd
Merge branch 'develop' into SW-100
Thekid2002 Nov 25, 2023
c092fb5
stash went wrong
ChristofferGamel Nov 26, 2023
210dbd6
SW-117 * Added role authorization
Thekid2002 Nov 26, 2023
a4566f2
SW-117 * Added comment
Thekid2002 Nov 26, 2023
6ca77a5
Merge pull request #16 from Trimesteret/SW-117
Thekid2002 Nov 27, 2023
53a55ea
Merge branch 'develop' into SW-100
Thekid2002 Nov 27, 2023
720e4c1
(INCOMPLETE) Does not work
vjohns22 Nov 27, 2023
5ccef5b
Merge pull request #14 from Trimesteret/SW-100
Thekid2002 Nov 27, 2023
7a6e379
post edit
ChristofferGamel Nov 27, 2023
59d7f81
Revert "post edit"
ChristofferGamel Nov 27, 2023
8da8032
SW-112 * Edit users and role fixes
Thekid2002 Nov 28, 2023
ce48777
ch-ch-ch-changes
ChristofferGamel Nov 28, 2023
853e342
SW-11 * Changed ALOT
Thekid2002 Nov 28, 2023
3e34b33
Merge branch 'develop' into SW-111
Thekid2002 Nov 28, 2023
ae19d28
Update ItemController.cs
Thekid2002 Nov 28, 2023
5f320c2
SW-111 * Fixed merge conflict
Thekid2002 Nov 28, 2023
08d9073
SW-112 * Finished edituser pages
Thekid2002 Nov 28, 2023
bd04d5c
SW-112 * Fixed naming
Thekid2002 Nov 29, 2023
e6fab90
changed values for price to flaot
ChristofferGamel Nov 30, 2023
168cef7
double > float
ChristofferGamel Nov 30, 2023
89953f5
Merge pull request #17 from Trimesteret/SW-112
Thekid2002 Nov 30, 2023
c0ac925
Merge branch 'develop' into SW-111
Dec 1, 2023
550023b
SW-111 * Made itemservice take all relevant parameters
Dec 1, 2023
de0de15
SW-101 * Changed some shit
Thekid2002 Dec 3, 2023
307b001
Suppliers UI WIP (needs iteem association)
ChristofferGamel Dec 3, 2023
b235ec6
SW-118 * Changing Password Backend
NiklasBH Dec 3, 2023
5e66e4e
SW-101 * Finished shoppingcart
Thekid2002 Dec 4, 2023
4284e5a
SW-101 * Removed endpoint
Thekid2002 Dec 4, 2023
113643e
SW-111 * Added migrations
Thekid2002 Dec 4, 2023
69bdc64
SW-111 * Removed outcommented code
Thekid2002 Dec 4, 2023
a08109d
Merge pull request #20 from Trimesteret/SW-111
Thekid2002 Dec 4, 2023
fca3e3f
Merge branch 'develop' into SW-101
Thekid2002 Dec 4, 2023
a900a82
Merge pull request #19 from Trimesteret/SW-101
Thekid2002 Dec 4, 2023
a9f24f3
Small fixx
Thekid2002 Dec 4, 2023
1449c32
Merge branch 'SW-101' into develop
Thekid2002 Dec 4, 2023
6e4fbc5
Merge branch 'develop' into SW-121
ChristofferGamel Dec 4, 2023
79f6e1b
SW-123 * Edit item now work
Dec 4, 2023
525c018
Merge pull request #21 from Trimesteret/SW-123
vjohns22 Dec 4, 2023
9fc419e
SW-124 * Better? Better.
Thekid2002 Dec 4, 2023
9e2776e
Merge pull request #22 from Trimesteret/SW-124
Thekid2002 Dec 4, 2023
686c481
measuring stick
ChristofferGamel Dec 5, 2023
3b3c127
SW-118 * Fixed comments on changes
NiklasBH Dec 5, 2023
121a3fa
Merge branch 'develop' into SW-121
ChristofferGamel Dec 5, 2023
f708f2b
SW-129 * Works more and more
Thekid2002 Dec 5, 2023
2dda5b3
SW-119 * Backend Order part1
MarcusBach44 Dec 5, 2023
5b01a6b
Update InboundOrder.cs
MarcusBach44 Dec 5, 2023
6c89cc4
SW-129 * Tryed my best
Thekid2002 Dec 5, 2023
4ba00e4
SupplierId attr added to items + migrations
ChristofferGamel Dec 6, 2023
8b77f86
SW-129 * Items
Thekid2002 Dec 6, 2023
68e2394
SW-119 * Now gets data from database
MarcusBach44 Dec 6, 2023
596f1d0
Working state, Creates duplicate items
ChristofferGamel Dec 6, 2023
6711a79
SW-129 * Save item
Thekid2002 Dec 6, 2023
a76498c
Merge branch 'develop' into 118
Thekid2002 Dec 6, 2023
43c5849
Merge pull request #23 from Trimesteret/SW-129
vjohns22 Dec 6, 2023
078d0b1
Merge branch 'develop' into SW-118
Thekid2002 Dec 6, 2023
c0a369c
SW-118 * Fixed change password
Thekid2002 Dec 6, 2023
7e1a8f4
Merge pull request #18 from Trimesteret/118
Thekid2002 Dec 6, 2023
2fd4b8f
Working state, needs merging for suppliers and ass. items
ChristofferGamel Dec 6, 2023
fea3e6a
SW-134
Thekid2002 Dec 6, 2023
a118aa0
SW-132 * Url now gets posted to database
Dec 6, 2023
3c84a35
Merge branch 'develop' into SW-121
ChristofferGamel Dec 6, 2023
99a4862
Merged develop into SW-121
ChristofferGamel Dec 6, 2023
d8d2abe
SW-132 * Fix
Thekid2002 Dec 7, 2023
3fdb233
SW-135 * Data seeding
Thekid2002 Dec 7, 2023
fd3f8b0
Items correctly associated with supplier
ChristofferGamel Dec 7, 2023
9df86d5
Associations -> Relations
ChristofferGamel Dec 7, 2023
7bdac55
Merge branch 'develop' into SW-134
Thekid2002 Dec 7, 2023
bcc583b
Merge pull request #24 from Trimesteret/SW-134
Thekid2002 Dec 7, 2023
5f803d4
SW-119 * fixed comments maybe
MarcusBach44 Dec 7, 2023
dd8c9a5
SW-131 * Begining enums
Thekid2002 Dec 7, 2023
6e06007
Update PurchaseOrder.cs
MarcusBach44 Dec 7, 2023
e69b3a4
Edit Supplier Functionality Added
ChristofferGamel Dec 7, 2023
4c6a391
Merge branch 'develop' into SW-121
ChristofferGamel Dec 8, 2023
31e9aec
Merge branch 'develop' into SW-119
MarcusBach44 Dec 8, 2023
02b6737
cleanup
ChristofferGamel Dec 8, 2023
9c027bf
SW-119 * Fixed merge conflicts
MarcusBach44 Dec 8, 2023
512c23d
SW-121 * Arbejder på det
Thekid2002 Dec 8, 2023
991bdad
SW-121 * Fixed suppliers
Thekid2002 Dec 8, 2023
b441e0f
SW-131 * Edit enum finished
Thekid2002 Dec 9, 2023
e87e051
SW-121 * Kommentare
Thekid2002 Dec 9, 2023
02f9df7
Merge pull request #26 from Trimesteret/SW-121
ChristofferGamel Dec 9, 2023
b41e443
Merge branch 'develop' into SW-131
Thekid2002 Dec 9, 2023
e75f290
Merge pull request #27 from Trimesteret/SW-131
Thekid2002 Dec 9, 2023
0cbb0f9
SW-119 * Purchase order and inbound order in progress
Thekid2002 Dec 10, 2023
cd22ca0
Merge branch 'develop' into SW-119
Thekid2002 Dec 10, 2023
5fa7c1d
SW-119 * Et yderst jammerligt forsøg på at redde ordre
Thekid2002 Dec 10, 2023
3ff3aca
SW-119 * Fixing orders
Thekid2002 Dec 14, 2023
e87918f
SW-119 * Fix
Thekid2002 Dec 14, 2023
bc4f042
SW-119 * Fixing purchase order
Thekid2002 Dec 15, 2023
cfceffc
SW-119 * Fix
Thekid2002 Dec 15, 2023
90dc937
SW-119 * SW-119
Thekid2002 Dec 16, 2023
1f3148c
SW-119 * Risalamande
Thekid2002 Dec 16, 2023
2f8918f
SW-119 * Så for satan
Thekid2002 Dec 17, 2023
e8aecbf
Merge pull request #25 from Trimesteret/SW-119
Thekid2002 Dec 17, 2023
bb98cbe
SW-174 * Unit test..ing my patience
Thekid2002 Dec 17, 2023
9a53ef0
SW-174 * Added unit testing
Thekid2002 Dec 17, 2023
2db316b
SW-174 * TESTING :pig:
Thekid2002 Dec 17, 2023
9ea7b75
SW-174 * Test
Thekid2002 Dec 18, 2023
bb04395
Begyndelse på nogle item tests
Thekid2002 Dec 18, 2023
d547850
Invading your branch for fun and profit
DaniekFjaes Dec 18, 2023
7ec0ca7
Lil hashing test
DaniekFjaes Dec 18, 2023
87a7261
SW-174 * Testing and cleaning
Thekid2002 Dec 19, 2023
70d3377
SW-174 * Testing
Thekid2002 Dec 19, 2023
00a81aa
Merge pull request #28 from Trimesteret/SW-174
Thekid2002 Dec 19, 2023
962a3e7
SW-178 * Fixed inbound orders
Thekid2002 Dec 19, 2023
5828ed4
SW-178 * Commit service and shit
Thekid2002 Dec 19, 2023
5b14688
Tests and fixes
DaniekFjaes Dec 20, 2023
28477a6
Tests +
DaniekFjaes Dec 20, 2023
fe4c310
Added comments to tests
DaniekFjaes Dec 20, 2023
40394e0
SW-178 * Removed html and css
Thekid2002 Dec 20, 2023
f4a01f1
SW-178 * Tests inbound orders
Thekid2002 Dec 20, 2023
2ff3bee
Merge branch 'SW-179' into SW-178
Thekid2002 Dec 20, 2023
e05b3c9
SW-178 * Remove shit
Thekid2002 Dec 20, 2023
7241628
SW-178 * Test
Thekid2002 Dec 20, 2023
765969f
Merge pull request #30 from Trimesteret/SW-178
DaniekFjaes Dec 20, 2023
d35145b
Fixed testing
Thekid2002 Dec 20, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# From .NET Core 3.0 you can use the command: `dotnet new gitignore` to generate a customizable .gitignore file

*.html
*.css
*.svg
*.swp
*.*~
project.lock.json
Expand Down Expand Up @@ -59,3 +62,8 @@ obj/project.nuget.cache
obj/project.packagespec.json
obj/rider.project.model.nuget.info
obj/rider.project.restore.info
*.js
*.htm
*.css
*.svg
*.htm
22 changes: 22 additions & 0 deletions .idea/.idea.API.dir/.idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

319 changes: 319 additions & 0 deletions .idea/.idea.API/.idea/workspace.xml

Large diffs are not rendered by default.

10 changes: 0 additions & 10 deletions .vs/API/xs/UserPrefs.xml

This file was deleted.

1 change: 0 additions & 1 deletion .vs/API/xs/project-cache/API-Debug.json

This file was deleted.

34 changes: 34 additions & 0 deletions API.Tests/API.Tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.14" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.2.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\API\API.csproj" />
</ItemGroup>

<ItemGroup>
<Folder Include="TestResults\" />
</ItemGroup>

</Project>
66 changes: 66 additions & 0 deletions API.Tests/CreateInboundOrderTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
using API.Services;

namespace API.Tests;

[Collection("Sequential")]
public class CreateInboundOrderTest
{
[Fact]
public async void PassTestCreateInboundOrder()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var orderService = new OrderService(context, mapper, new AuthService(null, context), new ItemService(context, mapper));

var inboundOrderToCreate = await SharedTesting.GetRandomInboundOrderDto(context, mapper);

var inboundOrderCreated = await orderService.CreateInboundOrder(inboundOrderToCreate);
Assert.NotNull(inboundOrderCreated);

Assert.Equal(inboundOrderToCreate.TotalPrice, inboundOrderCreated.TotalPrice);
Assert.Equal(inboundOrderToCreate.Supplier.Id, inboundOrderCreated.Supplier.Id);
Assert.Equal(inboundOrderToCreate.Supplier.Items, inboundOrderCreated.Supplier.Items);
Assert.Equal(inboundOrderToCreate.Supplier.Name, inboundOrderCreated.Supplier.Name);
Assert.Equal(inboundOrderToCreate.OrderDate, inboundOrderCreated.OrderDate);
Assert.Equal(inboundOrderToCreate.OrderLines.Count, inboundOrderCreated.OrderLines.Count);
await context.Database.EnsureDeletedAsync();
}

[Fact]
public async void FailCreateDuplicateInboundOrder()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var orderService = new OrderService(context, mapper, new AuthService(null, context), new ItemService(context, mapper));

var inboundOrderToCreate = await SharedTesting.GetRandomInboundOrderDto(context, mapper);

var inboundOrderCreated = await orderService.CreateInboundOrder(inboundOrderToCreate);
Assert.NotNull(inboundOrderCreated);

var inboundOrderToCreateDuplicate = await SharedTesting.GetRandomInboundOrderDto(context, mapper);
inboundOrderToCreateDuplicate.Id = inboundOrderCreated.Id;
inboundOrderToCreateDuplicate.SupplierName = inboundOrderCreated.Supplier.Name;

await Assert.ThrowsAsync<Exception>(async () => await orderService.CreateInboundOrder(inboundOrderToCreateDuplicate));
await context.Database.EnsureDeletedAsync();
}

[Fact]
public async void FailCreateInboundOrderWithUnknownSupplier()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var orderService = new OrderService(context, mapper, new AuthService(null, context), new ItemService(context, mapper));

var inboundOrderToCreate = await SharedTesting.GetRandomInboundOrderDto(context, mapper);
inboundOrderToCreate.Supplier.Id = -1;
inboundOrderToCreate.SupplierName = "Unknown supplier";

await Assert.ThrowsAsync<Exception>(async () => await orderService.CreateInboundOrder(inboundOrderToCreate));
await context.Database.EnsureDeletedAsync();
}
}
84 changes: 84 additions & 0 deletions API.Tests/CreateItemTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
using API.DataTransferObjects;
using API.Enums;
using API.Services;
using Microsoft.EntityFrameworkCore;

namespace API.Tests;

[Collection("Sequential")]
public class CreateItemTest
{
[Fact]
public async void PassCreateLiquorTest()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var itemService = new ItemService(context, mapper);

var customEnum1 = new CustomEnum { Key = "ltest1", Value = "lTest1", EnumType = EnumType.LiqourType};
context.CustomEnums.Add(customEnum1);
await context.SaveChangesAsync();

var testItemDto = new ItemDto { ItemType = ItemType.Liquor, Name = "Test1", Ean = "123456789", Quantity = 10, ReservedQuantity = 0, ImageUrl = "test",
Price = 10, Description = "test", Year = 1999, Volume = 0.7, AlcoholPercentage = 40, LiquorTypeEnum = customEnum1 };

var createdItemDto = await itemService.CreateItem(testItemDto);
Assert.NotNull(createdItemDto);

var createdLiquor = await context.Liquors.FirstOrDefaultAsync(liq => liq.Id == createdItemDto.Id);
Assert.NotNull(createdLiquor);

Assert.Equal(createdItemDto.Id, createdLiquor.Id);
await context.Database.EnsureDeletedAsync();
}

[Fact]
public async void PassCreateWineTest()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var itemService = new ItemService(context, mapper);

var customEnum1 = new CustomEnum { Key = "ltest1", Value = "lTest1", EnumType = EnumType.WineType};
context.CustomEnums.Add(customEnum1);
await context.SaveChangesAsync();


var testItemDto = new ItemDto { ItemType = ItemType.Wine, Name = "Test1", Ean = "123456789", Quantity = 10, ReservedQuantity = 0, ImageUrl = "test",
Price = 10, Description = "test", Year = 1999, Volume = 0.7, AlcoholPercentage = 40, SuitableForEnumIds = new List<int> { 0, 1 }, WineTypeEnum = customEnum1 };

var createdItemDto = await itemService.CreateItem(testItemDto);
Assert.NotNull(createdItemDto);

var createdWine = await context.Wines.FirstOrDefaultAsync(wine => wine.Id == createdItemDto.Id);
Assert.NotNull(createdWine);

Assert.Equal(createdItemDto.Id, createdWine.Id);
await context.Database.EnsureDeletedAsync();
}

[Fact]
public async void PassCreateDefaultItemTest()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var itemService = new ItemService(context, mapper);

await context.SaveChangesAsync();

var itemDto1 = new ItemDto { ItemType = ItemType.DefaultItem, Name = "Test1", Ean = "123456789", Quantity = 10, ReservedQuantity = 0, ImageUrl = "test",
Price = 10, Description = "test", Year = 1999, Volume = 0.7, AlcoholPercentage = 40 };

var createdItemDto = await itemService.CreateItem(itemDto1);
Assert.NotNull(createdItemDto);

var createdItem = await context.DefaultItems.FirstOrDefaultAsync(item => item.Id == createdItemDto.Id);
Assert.NotNull(createdItem);

Assert.Equal(createdItemDto.Id, createdItem.Id);
await context.Database.EnsureDeletedAsync();
}
}
60 changes: 60 additions & 0 deletions API.Tests/CreatePurchaseOrderTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
using API.DataTransferObjects;
using API.Enums;
using API.Models;
using API.Services;
using Microsoft.AspNetCore.Http;
namespace API.Tests;

[Collection("Sequential")]
public class CreatePurchaseOrderTest
{
/// <summary>
/// Tests if a purchase order can be created and returned with no exceptions and without being null.
/// </summary>
[Fact]
public async void PassCreatePurchaseOrderTest()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var orderService = new OrderService(context, mapper, new AuthService(null, context), new ItemService(context, mapper));

var testPurchaseOrder = await SharedTesting.GetRandomPurchaseOrderDto(context, mapper);

var createdPurchaseOrder = await orderService.CreatePurchaseOrder(testPurchaseOrder);
Assert.NotNull(createdPurchaseOrder);

Assert.Equal(createdPurchaseOrder.TotalPrice, testPurchaseOrder.TotalPrice);
Assert.Equal(createdPurchaseOrder.CustomerFirstName, testPurchaseOrder.CustomerFirstName);
Assert.Equal(createdPurchaseOrder.CustomerLastName, testPurchaseOrder.CustomerLastName);
Assert.Equal(createdPurchaseOrder.CustomerPhone, testPurchaseOrder.CustomerPhone);
Assert.Equal(createdPurchaseOrder.CustomerEmail, testPurchaseOrder.CustomerEmail);
Assert.Equal(createdPurchaseOrder.AddressLine, testPurchaseOrder.AddressLine);
Assert.Equal(createdPurchaseOrder.PostalCode, testPurchaseOrder.PostalCode);
Assert.Equal(createdPurchaseOrder.City, testPurchaseOrder.City);
Assert.Equal(createdPurchaseOrder.Country, testPurchaseOrder.Country);
Assert.Equal(createdPurchaseOrder.OrderLines.Count, testPurchaseOrder.OrderLines.Count);
Assert.Equal(createdPurchaseOrder.PurchaseOrderState, testPurchaseOrder.PurchaseOrderState);
await context.Database.EnsureDeletedAsync();
}

/// <summary>
/// Tests if it's possible to create a purchase order that already exists.
/// </summary>
[Fact]
public async void FailCreatePurchaseOrderTestOrderAlreadyExists()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var orderService = new OrderService(context, mapper, new AuthService(null, context), new ItemService(context, mapper));

var testPurchaseOrder = await SharedTesting.GetRandomPurchaseOrderDto(context, mapper);

var createdPurchaseOrder = await orderService.CreatePurchaseOrder(testPurchaseOrder);
testPurchaseOrder.Id = createdPurchaseOrder.Id;
Assert.NotNull(createdPurchaseOrder);
await Assert.ThrowsAsync<Exception>(async () =>await orderService.CreatePurchaseOrder(testPurchaseOrder));
await context.Database.EnsureDeletedAsync();
}
}
49 changes: 49 additions & 0 deletions API.Tests/EditInboundOrderTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using API.Services;

namespace API.Tests;

[Collection("Sequential")]
public class EditInboundOrderTest
{
[Fact]
public async void PassTestEditInboundOrder()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var orderService = new OrderService(context, mapper, new AuthService(null, context), new ItemService(context, mapper));

var inboundOrderToCreate = await SharedTesting.GetRandomInboundOrderDto(context, mapper);

var inboundOrderCreated = await orderService.CreateInboundOrder(inboundOrderToCreate);
Assert.NotNull(inboundOrderCreated);

var inboundOrderToEdit = await SharedTesting.GetRandomInboundOrderDto(context, mapper);
inboundOrderToEdit.Id = inboundOrderCreated.Id;

var inboundOrderEdited = await orderService.EditInboundOrder(inboundOrderToEdit);
Assert.NotNull(inboundOrderEdited);

Assert.Equal(inboundOrderToEdit.TotalPrice, inboundOrderEdited.TotalPrice);
Assert.Equal(inboundOrderToEdit.Supplier.Id, inboundOrderEdited.Supplier.Id);
Assert.Equal(inboundOrderToEdit.Supplier.Items, inboundOrderEdited.Supplier.Items);
Assert.Equal(inboundOrderToEdit.Supplier.Name, inboundOrderEdited.Supplier.Name);
Assert.Equal(inboundOrderToEdit.OrderDate, inboundOrderEdited.OrderDate);
Assert.Equal(inboundOrderToEdit.OrderLines.Count, inboundOrderEdited.OrderLines.Count);
await context.Database.EnsureDeletedAsync();
}

[Fact]
public async void FailEditNonExistingInboundOrder()
{
var context = SharedTesting.GetContext();
var mapper = SharedTesting.GetMapper();

var orderService = new OrderService(context, mapper, new AuthService(null, context), new ItemService(context, mapper));

var inboundOrderToEdit = await SharedTesting.GetRandomInboundOrderDto(context, mapper);

await Assert.ThrowsAsync<Exception>(async () => await orderService.EditInboundOrder(inboundOrderToEdit));
await context.Database.EnsureDeletedAsync();
}
}
Loading