From 1a862db8f2be5a02758fc0a9f76c64b61d7651d0 Mon Sep 17 00:00:00 2001 From: kTrzcinskii Date: Sat, 10 May 2025 12:10:47 +0200 Subject: [PATCH] Replace `Name` and `Description` with `SearchQuery` --- .../Controllers/EventsControllerTests.cs | 2 +- .../Events/Filters/EventFilterApplierTests.cs | 102 +++++------------- .../Events/DTOs/Request/EventFiltersDto.cs | 3 +- .../Events/Filters/EventFilterApplier.cs | 8 +- 4 files changed, 33 insertions(+), 82 deletions(-) diff --git a/TickAPI/TickAPI.Tests/Events/Controllers/EventsControllerTests.cs b/TickAPI/TickAPI.Tests/Events/Controllers/EventsControllerTests.cs index 69b4f4e..cd0f793 100644 --- a/TickAPI/TickAPI.Tests/Events/Controllers/EventsControllerTests.cs +++ b/TickAPI/TickAPI.Tests/Events/Controllers/EventsControllerTests.cs @@ -20,7 +20,7 @@ namespace TickAPI.Tests.Events.Controllers; public class EventsControllerTests { - private readonly EventFiltersDto _emptyFilters = new EventFiltersDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); + private readonly EventFiltersDto _emptyFilters = new EventFiltersDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); [Fact] public async Task CreateEvent_WhenDataIsValid_ShouldReturnSuccess() diff --git a/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs b/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs index b836508..6256303 100644 --- a/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs +++ b/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs @@ -24,8 +24,7 @@ public void ApplyFilters_WithName_ShouldCallFilterByName() { // Arrange var filters = new EventFiltersDto( - Name: "test event", - Descritpion: null, + SearchQuery: "test event", StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -49,52 +48,18 @@ public void ApplyFilters_WithName_ShouldCallFilterByName() _eventFilterApplier.ApplyFilters(filters); // Assert - _mockEventFilter.Verify(ef => ef.FilterByName(filters.Name!), Times.Once); + _mockEventFilter.Verify(ef => ef.FilterByName(filters.SearchQuery!), Times.Once); + _mockEventFilter.Verify(ef => ef.FilterByDescription(filters.SearchQuery!), Times.Once); _mockEventFilter.Verify(ef => ef.GetEvents(), Times.Once); } - - [Fact] - public void ApplyFilters_WithDescription_ShouldCallFilterByDescription() - { - // Arrange - var filters = new EventFiltersDto( - Name: null, - Descritpion: "test description", - StartDate: null, - MinStartDate: null, - MaxStartDate: null, - EndDate: null, - MinEndDate: null, - MaxEndDate: null, - MinPrice: null, - MaxPrice: null, - MinAge: null, - MaxMinimumAge: null, - AddressCountry: null, - AddressCity: null, - AddressStreet: null, - HouseNumber: null, - FlatNumber: null, - PostalCode: null, - CategoriesNames: null - ); - - // Act - _eventFilterApplier.ApplyFilters(filters); - - // Assert - _mockEventFilter.Verify(ef => ef.FilterByDescription(filters.Descritpion!), Times.Once); - _mockEventFilter.Verify(ef => ef.GetEvents(), Times.Once); - } - + [Fact] public void ApplyFilters_WithStartDate_ShouldCallFilterByStartDate() { // Arrange var startDate = new DateTime(2025, 5, 1); var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: startDate, MinStartDate: null, MaxStartDate: null, @@ -128,8 +93,7 @@ public void ApplyFilters_WithMinStartDate_ShouldCallFilterByMinStartDate() // Arrange var minStartDate = new DateTime(2025, 5, 1); var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: minStartDate, MaxStartDate: null, @@ -163,8 +127,7 @@ public void ApplyFilters_WithMaxStartDate_ShouldCallFilterByMaxStartDate() // Arrange var maxStartDate = new DateTime(2025, 5, 1); var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: maxStartDate, @@ -198,8 +161,7 @@ public void ApplyFilters_WithEndDate_ShouldCallFilterByEndDate() // Arrange var endDate = new DateTime(2025, 5, 1); var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -233,8 +195,7 @@ public void ApplyFilters_WithMinEndDate_ShouldCallFilterByMinEndDate() // Arrange var minEndDate = new DateTime(2025, 5, 1); var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -268,8 +229,7 @@ public void ApplyFilters_WithMaxEndDate_ShouldCallFilterByMaxEndDate() // Arrange var maxEndDate = new DateTime(2025, 5, 1); var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -303,8 +263,7 @@ public void ApplyFilters_WithMinPrice_ShouldCallFilterByMinPrice() // Arrange decimal minPrice = 100; var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -338,8 +297,7 @@ public void ApplyFilters_WithMaxPrice_ShouldCallFilterByMaxPrice() // Arrange decimal maxPrice = 200; var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -373,8 +331,7 @@ public void ApplyFilters_WithMinAge_ShouldCallFilterByMinAge() // Arrange uint minAge = 18; var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -408,8 +365,7 @@ public void ApplyFilters_WithMaxMinimumAge_ShouldCallFilterByMaxMinimumAge() // Arrange uint maxMinimumAge = 21; var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -442,8 +398,7 @@ public void ApplyFilters_WithAddressCountry_ShouldCallFilterByAddressCountry() { // Arrange var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -476,8 +431,7 @@ public void ApplyFilters_WithAddressCity_ShouldCallFilterByAddressCity() { // Arrange var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -510,8 +464,7 @@ public void ApplyFilters_WithAddressStreetOnly_ShouldCallFilterByAddressStreet() { // Arrange var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -545,8 +498,7 @@ public void ApplyFilters_WithAddressStreetAndHouseNumber_ShouldCallFilterByAddre // Arrange uint houseNumber = 12; var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -581,8 +533,7 @@ public void ApplyFilters_WithCompleteAddress_ShouldCallFilterByAddressStreet() uint houseNumber = 12; uint flatNumber = 5; var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -615,8 +566,7 @@ public void ApplyFilters_WithPostalCode_ShouldCallFilterByAddressPostalCode() { // Arrange var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -650,8 +600,7 @@ public void ApplyFilters_WithCategoriesNames_ShouldCallFilterByCategoriesNames() // Arrange var categoriesNames = new List { "Concert", "Festival", "Exhibition" }; var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, @@ -687,8 +636,7 @@ public void ApplyFilters_WithMultipleFilters_ShouldCallAllRelevantFilters() decimal minPrice = 50; decimal maxPrice = 200; var filters = new EventFiltersDto( - Name: "Concert", - Descritpion: null, + SearchQuery: "Concert", StartDate: startDate, MinStartDate: null, MaxStartDate: null, @@ -712,7 +660,8 @@ public void ApplyFilters_WithMultipleFilters_ShouldCallAllRelevantFilters() _eventFilterApplier.ApplyFilters(filters); // Assert - _mockEventFilter.Verify(ef => ef.FilterByName(filters.Name!), Times.Once); + _mockEventFilter.Verify(ef => ef.FilterByName(filters.SearchQuery!), Times.Once); + _mockEventFilter.Verify(ef => ef.FilterByDescription(filters.SearchQuery!), Times.Once); _mockEventFilter.Verify(ef => ef.FilterByStartDate(filters.StartDate!.Value), Times.Once); _mockEventFilter.Verify(ef => ef.FilterByMinPrice(filters.MinPrice!.Value), Times.Once); _mockEventFilter.Verify(ef => ef.FilterByMaxPrice(filters.MaxPrice!.Value), Times.Once); @@ -730,8 +679,7 @@ public void ApplyFilters_WithNoFilters_ShouldOnlyCallGetEvents() }.AsQueryable(); _mockEventFilter.Setup(ef => ef.GetEvents()).Returns(expectedResult); var filters = new EventFiltersDto( - Name: null, - Descritpion: null, + SearchQuery: null, StartDate: null, MinStartDate: null, MaxStartDate: null, diff --git a/TickAPI/TickAPI/Events/DTOs/Request/EventFiltersDto.cs b/TickAPI/TickAPI/Events/DTOs/Request/EventFiltersDto.cs index 7eba343..89ece02 100644 --- a/TickAPI/TickAPI/Events/DTOs/Request/EventFiltersDto.cs +++ b/TickAPI/TickAPI/Events/DTOs/Request/EventFiltersDto.cs @@ -1,8 +1,7 @@ namespace TickAPI.Events.DTOs.Request; public record EventFiltersDto( - string? Name, - string? Descritpion, + string? SearchQuery, DateTime? StartDate, DateTime? MinStartDate, DateTime? MaxStartDate, diff --git a/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs b/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs index a9f890b..7a3aa80 100644 --- a/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs +++ b/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs @@ -14,8 +14,12 @@ public EventFilterApplier(IEventFilter eventFilter) _eventFilter = eventFilter; _filterActions = new Dictionary, Action> { - { f => !string.IsNullOrEmpty(f.Name), f => _eventFilter.FilterByName(f.Name!) }, - { f => !string.IsNullOrEmpty(f.Descritpion), f => _eventFilter.FilterByDescription(f.Descritpion!) }, + { f => !string.IsNullOrEmpty(f.SearchQuery), f => + { + _eventFilter.FilterByName(f.SearchQuery!); + _eventFilter.FilterByDescription(f.SearchQuery!); + } + }, { f => f.StartDate.HasValue, f => _eventFilter.FilterByStartDate(f.StartDate!.Value) }, { f => f.MinStartDate.HasValue, f => _eventFilter.FilterByMinStartDate(f.MinStartDate!.Value) }, { f => f.MaxStartDate.HasValue, f => _eventFilter.FilterByMaxStartDate(f.MaxStartDate!.Value) },