Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -703,8 +701,7 @@ public void ApplyFilters_WithNoFilters_ShouldOnlyCallGetEvents()
var result = _eventFilterApplier.ApplyFilters(filters);

// Assert
_mockEventFilter.Verify(ef => ef.FilterByName(It.IsAny<string>()), Times.Never);
_mockEventFilter.Verify(ef => ef.FilterByDescription(It.IsAny<string>()), Times.Never);
_mockEventFilter.Verify(ef => ef.FilterByNameOrDescription(It.IsAny<string>()), Times.Never);
_mockEventFilter.Verify(ef => ef.FilterByStartDate(It.IsAny<DateTime>()), Times.Never);
_mockEventFilter.Verify(ef => ef.FilterByMinStartDate(It.IsAny<DateTime>()), Times.Never);
_mockEventFilter.Verify(ef => ef.FilterByMaxStartDate(It.IsAny<DateTime>()), Times.Never);
Expand Down
4 changes: 2 additions & 2 deletions TickAPI/TickAPI.Tests/Events/Filters/EventFilterTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
3 changes: 1 addition & 2 deletions TickAPI/TickAPI/Events/Abstractions/IEventFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ namespace TickAPI.Events.Abstractions;
public interface IEventFilter
{
IQueryable<Event> 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);
Expand Down
11 changes: 3 additions & 8 deletions TickAPI/TickAPI/Events/Filters/EventFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,11 @@ public IQueryable<Event> 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);
Expand Down
6 changes: 1 addition & 5 deletions TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,7 @@ public EventFilterApplier(IEventFilter eventFilter)
_eventFilter = eventFilter;
_filterActions = new Dictionary<Func<EventFiltersDto, bool>, Action<EventFiltersDto>>
{
{ 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) },
Expand Down
Loading