diff --git a/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs b/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs index 6256303..47ffd77 100644 --- a/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs +++ b/TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs @@ -48,8 +48,7 @@ public void ApplyFilters_WithName_ShouldCallFilterByName() _eventFilterApplier.ApplyFilters(filters); // Assert - _mockEventFilter.Verify(ef => ef.FilterByName(filters.SearchQuery!), Times.Once); - _mockEventFilter.Verify(ef => ef.FilterByDescription(filters.SearchQuery!), Times.Once); + _mockEventFilter.Verify(ef => ef.FilterByNameOrDescription(filters.SearchQuery!), Times.Once); _mockEventFilter.Verify(ef => ef.GetEvents(), Times.Once); } @@ -660,8 +659,7 @@ public void ApplyFilters_WithMultipleFilters_ShouldCallAllRelevantFilters() _eventFilterApplier.ApplyFilters(filters); // Assert - _mockEventFilter.Verify(ef => ef.FilterByName(filters.SearchQuery!), Times.Once); - _mockEventFilter.Verify(ef => ef.FilterByDescription(filters.SearchQuery!), Times.Once); + _mockEventFilter.Verify(ef => ef.FilterByNameOrDescription(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); @@ -703,8 +701,7 @@ public void ApplyFilters_WithNoFilters_ShouldOnlyCallGetEvents() var result = _eventFilterApplier.ApplyFilters(filters); // Assert - _mockEventFilter.Verify(ef => ef.FilterByName(It.IsAny()), Times.Never); - _mockEventFilter.Verify(ef => ef.FilterByDescription(It.IsAny()), Times.Never); + _mockEventFilter.Verify(ef => ef.FilterByNameOrDescription(It.IsAny()), Times.Never); _mockEventFilter.Verify(ef => ef.FilterByStartDate(It.IsAny()), Times.Never); _mockEventFilter.Verify(ef => ef.FilterByMinStartDate(It.IsAny()), Times.Never); _mockEventFilter.Verify(ef => ef.FilterByMaxStartDate(It.IsAny()), Times.Never); diff --git a/TickAPI/TickAPI.Tests/Events/Filters/EventFilterTests.cs b/TickAPI/TickAPI.Tests/Events/Filters/EventFilterTests.cs index 6458b6e..90b4052 100644 --- a/TickAPI/TickAPI.Tests/Events/Filters/EventFilterTests.cs +++ b/TickAPI/TickAPI.Tests/Events/Filters/EventFilterTests.cs @@ -102,7 +102,7 @@ public void FilterByName_ShouldReturnMatchingEvents() // Act var eventFilter = new EventFilter(events.AsQueryable()); - eventFilter.FilterByName("concert"); + eventFilter.FilterByNameOrDescription("concert"); var result = eventFilter.GetEvents().ToList(); // Assert @@ -119,7 +119,7 @@ public void FilterByDescription_ShouldReturnMatchingEvents() // Act var eventFilter = new EventFilter(events.AsQueryable()); - eventFilter.FilterByDescription("tech"); + eventFilter.FilterByNameOrDescription("tech"); var result = eventFilter.GetEvents().ToList(); // Assert diff --git a/TickAPI/TickAPI/Events/Abstractions/IEventFilter.cs b/TickAPI/TickAPI/Events/Abstractions/IEventFilter.cs index a4aa175..4681384 100644 --- a/TickAPI/TickAPI/Events/Abstractions/IEventFilter.cs +++ b/TickAPI/TickAPI/Events/Abstractions/IEventFilter.cs @@ -5,8 +5,7 @@ namespace TickAPI.Events.Abstractions; public interface IEventFilter { IQueryable GetEvents(); - void FilterByName(string name); - void FilterByDescription(string description); + void FilterByNameOrDescription(string name); void FilterByStartDate(DateTime startDate); void FilterByMinStartDate(DateTime startDate); void FilterByMaxStartDate(DateTime startDate); diff --git a/TickAPI/TickAPI/Events/Filters/EventFilter.cs b/TickAPI/TickAPI/Events/Filters/EventFilter.cs index 0e0f017..f7020a5 100644 --- a/TickAPI/TickAPI/Events/Filters/EventFilter.cs +++ b/TickAPI/TickAPI/Events/Filters/EventFilter.cs @@ -17,16 +17,11 @@ public IQueryable GetEvents() return _events; } - public void FilterByName(string name) + public void FilterByNameOrDescription(string searchQuery) { - _events = _events.Where(e => e.Name.ToLower().Contains(name.ToLower())); + _events = _events.Where(e => e.Name.ToLower().Contains(searchQuery.ToLower()) || e.Description.ToLower().Contains(searchQuery.ToLower())); } - - public void FilterByDescription(string description) - { - _events = _events.Where(e => e.Description.ToLower().Contains(description.ToLower())); - } - + public void FilterByStartDate(DateTime startDate) { _events = _events.Where(e => e.StartDate.Date == startDate.Date); diff --git a/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs b/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs index 7a3aa80..1720833 100644 --- a/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs +++ b/TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs @@ -14,11 +14,7 @@ public EventFilterApplier(IEventFilter eventFilter) _eventFilter = eventFilter; _filterActions = new Dictionary, Action> { - { f => !string.IsNullOrEmpty(f.SearchQuery), f => - { - _eventFilter.FilterByName(f.SearchQuery!); - _eventFilter.FilterByDescription(f.SearchQuery!); - } + { f => !string.IsNullOrEmpty(f.SearchQuery), f => _eventFilter.FilterByNameOrDescription(f.SearchQuery!) }, { f => f.StartDate.HasValue, f => _eventFilter.FilterByStartDate(f.StartDate!.Value) }, { f => f.MinStartDate.HasValue, f => _eventFilter.FilterByMinStartDate(f.MinStartDate!.Value) },