Skip to content

Commit 1cd644c

Browse files
authored
Merge pull request #79 from Resellio/develop
Develop
2 parents 145ee8d + 96a022c commit 1cd644c

25 files changed

Lines changed: 936 additions & 86 deletions

File tree

.github/workflows/deployapi.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
2+
# More GitHub Actions for Azure: https://github.com/Azure/actions
3+
4+
name: Build and deploy Resellio Backend
5+
6+
on:
7+
push:
8+
branches:
9+
- main
10+
workflow_dispatch:
11+
12+
jobs:
13+
build:
14+
runs-on: windows-latest
15+
permissions:
16+
contents: read #This is required for actions/checkout
17+
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- name: Set up .NET Core
22+
uses: actions/setup-dotnet@v4
23+
with:
24+
dotnet-version: '9.x'
25+
26+
- name: Build with dotnet
27+
run: dotnet build TickAPI/TickAPI/TickAPI.csproj --configuration Release
28+
29+
- name: dotnet publish
30+
run: dotnet publish TickAPI/TickAPI/TickAPI.csproj -c Release -o "${{env.DOTNET_ROOT}}/myapp"
31+
32+
- name: Upload artifact for deployment job
33+
uses: actions/upload-artifact@v4
34+
with:
35+
name: .net-app
36+
path: ${{env.DOTNET_ROOT}}/myapp
37+
38+
deploy:
39+
runs-on: windows-latest
40+
needs: build
41+
environment:
42+
name: 'Production'
43+
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
44+
permissions:
45+
id-token: write #This is required for requesting the JWT
46+
contents: read #This is required for actions/checkout
47+
48+
steps:
49+
- name: Download artifact from build job
50+
uses: actions/download-artifact@v4
51+
with:
52+
name: .net-app
53+
54+
- name: Login to Azure
55+
uses: azure/login@v2
56+
with:
57+
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_F22C931708554F8B83EE4F83C4FED407 }}
58+
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_6CDAC678ACD94858BF3421F606456B8B }}
59+
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_CA368EC8EA37446E96D5DF5F42B650EA }}
60+
61+
- name: Deploy to Azure Web App
62+
id: deploy-to-webapp
63+
uses: azure/webapps-deploy@v3
64+
with:
65+
app-name: 'resellio'
66+
slot-name: 'Production'
67+
package: .

TickAPI/TickAPI.Tests/Categories/Controllers/CategoryControllerTests.cs renamed to TickAPI/TickAPI.Tests/Categories/Controllers/CategoriesControllerTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
namespace TickAPI.Tests.Categories.Controllers;
1414

15-
public class CategoryControllerTests
15+
public class CategoriesControllerTests
1616
{
1717
[Fact]
1818
public async Task GetCategories_WhenDataIsValid_ShouldReturnOk()
@@ -25,7 +25,7 @@ public async Task GetCategories_WhenDataIsValid_ShouldReturnOk()
2525
Result<PaginatedData<GetCategoryResponseDto>>.Success(new PaginatedData<GetCategoryResponseDto>(new List<GetCategoryResponseDto>(), pageNumber, pageSize, true, true,
2626
new PaginationDetails(0, 0))));
2727

28-
var sut = new CategoryController(categoryServiceMock.Object);
28+
var sut = new CategoriesController(categoryServiceMock.Object);
2929

3030
// Act
3131
var res = await sut.GetCategories(pageSize, pageNumber);
@@ -49,7 +49,7 @@ public async Task CreateCategory_WhenDataIsValid_ShouldReturnSuccess()
4949
.Setup(m => m.CreateNewCategoryAsync(categoryName))
5050
.ReturnsAsync(Result<Category>.Success(new Category()));
5151

52-
var sut = new CategoryController(categoryServiceMock.Object);
52+
var sut = new CategoriesController(categoryServiceMock.Object);
5353

5454
// Act
5555
var res = await sut.CreateCategory(createCategoryDto);

TickAPI/TickAPI.Tests/Customers/Controllers/CustomerControllerTests.cs renamed to TickAPI/TickAPI.Tests/Customers/Controllers/CustomersControllerTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
namespace TickAPI.Tests.Customers.Controllers;
1616

17-
public class CustomerControllerTests
17+
public class CustomersControllerTests
1818
{
1919
[Fact]
2020
public async Task GoogleLogin_WhenAuthSuccessAndCustomerExists_ShouldReturnToken()
@@ -38,7 +38,7 @@ public async Task GoogleLogin_WhenAuthSuccessAndCustomerExists_ShouldReturnToken
3838

3939
var claimsServiceMock = new Mock<IClaimsService>();
4040

41-
var sut = new CustomerController(
41+
var sut = new CustomersController(
4242
googleAuthServiceMock.Object,
4343
jwtServiceMock.Object,
4444
customerServiceMock.Object,
@@ -83,7 +83,7 @@ public async Task GoogleLogin_WhenAuthSuccessAndCustomerDoesNotExist_ShouldCreat
8383

8484
var claimsServiceMock = new Mock<IClaimsService>();
8585

86-
var sut = new CustomerController(
86+
var sut = new CustomersController(
8787
googleAuthServiceMock.Object,
8888
jwtServiceMock.Object,
8989
customerServiceMock.Object,
@@ -137,7 +137,7 @@ public async Task AboutMe_WithValidEmailClaim_ShouldReturnCustomerDetails()
137137
var claimsServiceMock = new Mock<IClaimsService>();
138138
claimsServiceMock.Setup(m => m.GetEmailFromClaims(controllerContext.HttpContext.User.Claims)).Returns(Result<string>.Success(email));
139139

140-
var sut = new CustomerController(
140+
var sut = new CustomersController(
141141
googleAuthServiceMock.Object,
142142
jwtServiceMock.Object,
143143
customerServiceMock.Object,
@@ -168,7 +168,7 @@ public async Task AboutMe_WithMissingEmailClaim_ShouldReturnBadRequest()
168168
claimsServiceMock.Setup(m => m.GetEmailFromClaims(It.IsAny<IEnumerable<Claim>>())).Returns(Result<string>.Failure(StatusCodes.Status400BadRequest, "missing email claim"));
169169

170170

171-
var sut = new CustomerController(
171+
var sut = new CustomersController(
172172
googleAuthServiceMock.Object,
173173
jwtServiceMock.Object,
174174
customerServiceMock.Object,
@@ -194,4 +194,4 @@ public async Task AboutMe_WithMissingEmailClaim_ShouldReturnBadRequest()
194194
Assert.Equal(StatusCodes.Status400BadRequest, objectResult.StatusCode);
195195
Assert.Equal("missing email claim", objectResult.Value);
196196
}
197-
}
197+
}

TickAPI/TickAPI.Tests/Events/Controllers/EventControllerTests.cs renamed to TickAPI/TickAPI.Tests/Events/Controllers/EventsControllerTests.cs

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Microsoft.AspNetCore.Http;
66
using Microsoft.AspNetCore.Mvc;
77
using TickAPI.Addresses.DTOs.Request;
8+
using TickAPI.Categories.DTOs.Request;
89
using TickAPI.Common.Claims.Abstractions;
910
using TickAPI.Common.Pagination.Responses;
1011
using TickAPI.Events.Controllers;
@@ -13,10 +14,11 @@
1314
using TickAPI.Events.DTOs.Response;
1415
using TickAPI.Organizers.Abstractions;
1516
using TickAPI.Organizers.Models;
17+
using TickAPI.TicketTypes.DTOs.Request;
1618

1719
namespace TickAPI.Tests.Events.Controllers;
1820

19-
public class EventControllerTests
21+
public class EventsControllerTests
2022
{
2123
[Fact]
2224
public async Task CreateEvent_WhenDataIsValid_ShouldReturnSuccess()
@@ -30,12 +32,22 @@ public async Task CreateEvent_WhenDataIsValid_ShouldReturnSuccess()
3032
const string email = "123@mail.com";
3133
const EventStatus eventStatus = EventStatus.TicketsAvailable;
3234
Guid id = Guid.NewGuid();
35+
List<CreateEventCategoryDto> categories =
36+
[
37+
new CreateEventCategoryDto("concert"),
38+
new CreateEventCategoryDto("bear metal")
39+
];
40+
List<CreateEventTicketTypeDto> ticketTypes =
41+
[
42+
new CreateEventTicketTypeDto("normal", 100, 50.9m, "zł", new DateTime(2025, 5, 1)),
43+
new CreateEventTicketTypeDto("V.I.P", 10, 500.9m, "zł", new DateTime(2025, 5, 10)),
44+
];
3345
CreateAddressDto createAddress = new CreateAddressDto("United States", "New York", "Main st", 20, null, "00-000");
34-
CreateEventDto eventDto = new CreateEventDto(name, description, startDate, endDate, minimumAge, eventStatus, createAddress);
46+
CreateEventDto eventDto = new CreateEventDto(name, description, startDate, endDate, minimumAge, categories, ticketTypes, eventStatus, createAddress);
3547

3648
var eventServiceMock = new Mock<IEventService>();
3749
eventServiceMock
38-
.Setup(m => m.CreateNewEventAsync(name, description, startDate, endDate, minimumAge, createAddress, eventStatus, email))
50+
.Setup(m => m.CreateNewEventAsync(name, description, startDate, endDate, minimumAge, createAddress, categories , ticketTypes, eventStatus, email))
3951
.ReturnsAsync(Result<Event>.Success(new Event()));
4052

4153
var claims = new List<Claim>
@@ -55,7 +67,7 @@ public async Task CreateEvent_WhenDataIsValid_ShouldReturnSuccess()
5567

5668
var organizerServiceMock = new Mock<IOrganizerService>();
5769

58-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
70+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
5971

6072
sut.ControllerContext = controllerContext;
6173

@@ -79,6 +91,17 @@ public async Task CreateEvent_WhenMissingEmailClaims_ShouldReturnBadRequest()
7991
DateTime endDate = new DateTime(2025, 6, 1);
8092
uint? minimumAge = 18;
8193
const EventStatus eventStatus = EventStatus.TicketsAvailable;
94+
string email = "123@mail.com";
95+
List<CreateEventCategoryDto> categories =
96+
[
97+
new CreateEventCategoryDto("concert"),
98+
new CreateEventCategoryDto("bear metal")
99+
];
100+
List<CreateEventTicketTypeDto> ticketTypes =
101+
[
102+
new CreateEventTicketTypeDto("normal", 100, 50.9m, "zł", new DateTime(2025, 5, 1)),
103+
new CreateEventTicketTypeDto("V.I.P", 10, 500.9m, "zł", new DateTime(2025, 5, 10)),
104+
];
82105
CreateAddressDto createAddress = new CreateAddressDto("United States", "New York", "Main st", 20, null, "00-000");
83106

84107
var eventServiceMock = new Mock<IEventService>();
@@ -87,7 +110,7 @@ public async Task CreateEvent_WhenMissingEmailClaims_ShouldReturnBadRequest()
87110

88111
var organizerServiceMock = new Mock<IOrganizerService>();
89112

90-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
113+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
91114

92115
sut.ControllerContext = new ControllerContext
93116
{
@@ -97,8 +120,8 @@ public async Task CreateEvent_WhenMissingEmailClaims_ShouldReturnBadRequest()
97120
}
98121
};
99122

100-
// Act
101-
var res = await sut.CreateEvent(new CreateEventDto(name, description, startDate, endDate, minimumAge, eventStatus, createAddress));
123+
// act
124+
var res = await sut.CreateEvent(new CreateEventDto(name, description, startDate, endDate, minimumAge, categories, ticketTypes, eventStatus, createAddress));
102125

103126
// Assert
104127
var result = Assert.IsType<ActionResult<CreateEventResponseDto>>(res);
@@ -158,7 +181,7 @@ public async Task GetOrganizerEvents_WhenAllOperationsSucceed_ShouldReturnOkWith
158181
.Setup(m => m.GetOrganizerEventsAsync(organizer, page, pageSize))
159182
.ReturnsAsync(Result<PaginatedData<GetEventResponseDto>>.Success(paginatedData));
160183

161-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
184+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
162185
sut.ControllerContext = controllerContext;
163186

164187
// Act
@@ -195,7 +218,7 @@ public async Task GetOrganizerEvents_WhenEmailClaimIsMissing_ShouldReturnBadRequ
195218
var eventServiceMock = new Mock<IEventService>();
196219
var organizerServiceMock = new Mock<IOrganizerService>();
197220

198-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
221+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
199222
sut.ControllerContext = new ControllerContext
200223
{
201224
HttpContext = new DefaultHttpContext
@@ -248,7 +271,7 @@ public async Task GetOrganizerEvents_WhenOrganizerIsNotFound_ShouldReturnNotFoun
248271

249272
var eventServiceMock = new Mock<IEventService>();
250273

251-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
274+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
252275
sut.ControllerContext = controllerContext;
253276

254277
// Act
@@ -300,7 +323,7 @@ public async Task GetOrganizerEvents_WhenPaginationFails_ShouldReturnBadRequest(
300323
.Setup(m => m.GetOrganizerEventsAsync(organizer, page, pageSize))
301324
.ReturnsAsync(Result<PaginatedData<GetEventResponseDto>>.Failure(StatusCodes.Status400BadRequest, errorMessage));
302325

303-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
326+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
304327
sut.ControllerContext = controllerContext;
305328

306329
// Act
@@ -352,7 +375,7 @@ public async Task GetOrganizerEventsPaginationDetails_WhenAllOperationsSucceed_S
352375
.Setup(m => m.GetOrganizerEventsPaginationDetailsAsync(organizer, pageSize))
353376
.ReturnsAsync(Result<PaginationDetails>.Success(paginationDetails));
354377

355-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
378+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
356379
sut.ControllerContext = controllerContext;
357380

358381
// Act
@@ -406,7 +429,7 @@ public async Task GetOrganizerEventsPaginationDetails_WhenPaginationDetailsFails
406429
.Setup(m => m.GetOrganizerEventsPaginationDetailsAsync(organizer, pageSize))
407430
.ReturnsAsync(Result<PaginationDetails>.Failure(StatusCodes.Status400BadRequest, errorMessage));
408431

409-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
432+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
410433
sut.ControllerContext = controllerContext;
411434

412435
// Act
@@ -447,7 +470,7 @@ public async Task GetEvents_WhenAllOperationsSucceed_ShouldReturnOkWithPaginated
447470
.Setup(m => m.GetEventsAsync(page, pageSize))
448471
.ReturnsAsync(Result<PaginatedData<GetEventResponseDto>>.Success(paginatedData));
449472

450-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
473+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
451474

452475
// Act
453476
var response = await sut.GetEvents(pageSize, page);
@@ -484,7 +507,7 @@ public async Task GetEvents_WhenOperationFails_ShouldReturnErrorWithCorrectStatu
484507
.Setup(m => m.GetEventsAsync(page, pageSize))
485508
.ReturnsAsync(Result<PaginatedData<GetEventResponseDto>>.Failure(statusCode, errorMessage));
486509

487-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
510+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
488511

489512
// Act
490513
var response = await sut.GetEvents(pageSize, page);
@@ -512,7 +535,7 @@ public async Task GetEventsPaginationDetails_WhenAllOperationsSucceed_ShouldRetu
512535
.Setup(m => m.GetEventsPaginationDetailsAsync(pageSize))
513536
.ReturnsAsync(Result<PaginationDetails>.Success(paginationDetails));
514537

515-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
538+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
516539

517540
// Act
518541
var response = await sut.GetEventsPaginationDetails(pageSize);
@@ -543,7 +566,7 @@ public async Task GetEventsPaginationDetails_WhenOperationFails_ShouldReturnErro
543566
.Setup(m => m.GetEventsPaginationDetailsAsync(pageSize))
544567
.ReturnsAsync(Result<PaginationDetails>.Failure(statusCode, errorMessage));
545568

546-
var sut = new EventController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
569+
var sut = new EventsController(eventServiceMock.Object, claimsServiceMock.Object, organizerServiceMock.Object);
547570

548571
// Act
549572
var response = await sut.GetEventsPaginationDetails(pageSize);

0 commit comments

Comments
 (0)