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 @@ -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);
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);

[Fact]
public async Task CreateEvent_WhenDataIsValid_ShouldReturnSuccess()
Expand Down
145 changes: 126 additions & 19 deletions TickAPI/TickAPI.Tests/Events/Filters/EventFilterApplierTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ public void ApplyFilters_WithName_ShouldCallFilterByName()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -72,7 +74,9 @@ public void ApplyFilters_WithDescription_ShouldCallFilterByDescription()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -105,7 +109,9 @@ public void ApplyFilters_WithStartDate_ShouldCallFilterByStartDate()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -138,7 +144,9 @@ public void ApplyFilters_WithMinStartDate_ShouldCallFilterByMinStartDate()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -171,7 +179,9 @@ public void ApplyFilters_WithMaxStartDate_ShouldCallFilterByMaxStartDate()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -204,7 +214,9 @@ public void ApplyFilters_WithEndDate_ShouldCallFilterByEndDate()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -237,7 +249,9 @@ public void ApplyFilters_WithMinEndDate_ShouldCallFilterByMinEndDate()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -270,7 +284,9 @@ public void ApplyFilters_WithMaxEndDate_ShouldCallFilterByMaxEndDate()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -303,7 +319,9 @@ public void ApplyFilters_WithMinPrice_ShouldCallFilterByMinPrice()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -336,7 +354,9 @@ public void ApplyFilters_WithMaxPrice_ShouldCallFilterByMaxPrice()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -369,7 +389,9 @@ public void ApplyFilters_WithMinAge_ShouldCallFilterByMinAge()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -402,7 +424,9 @@ public void ApplyFilters_WithMaxMinimumAge_ShouldCallFilterByMaxMinimumAge()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -434,7 +458,9 @@ public void ApplyFilters_WithAddressCountry_ShouldCallFilterByAddressCountry()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -466,7 +492,9 @@ public void ApplyFilters_WithAddressCity_ShouldCallFilterByAddressCity()
AddressCity: "Warsaw",
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -498,7 +526,9 @@ public void ApplyFilters_WithAddressStreetOnly_ShouldCallFilterByAddressStreet()
AddressCity: null,
AddressStreet: "Marszałkowska",
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -531,7 +561,9 @@ public void ApplyFilters_WithAddressStreetAndHouseNumber_ShouldCallFilterByAddre
AddressCity: null,
AddressStreet: "Marszałkowska",
HouseNumber: houseNumber,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -565,7 +597,9 @@ public void ApplyFilters_WithCompleteAddress_ShouldCallFilterByAddressStreet()
AddressCity: null,
AddressStreet: "Marszałkowska",
HouseNumber: houseNumber,
FlatNumber: flatNumber
FlatNumber: flatNumber,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand All @@ -575,6 +609,75 @@ public void ApplyFilters_WithCompleteAddress_ShouldCallFilterByAddressStreet()
_mockEventFilter.Verify(ef => ef.FilterByAddressStreet(filters.AddressStreet!, filters.HouseNumber, filters.FlatNumber), Times.Once);
_mockEventFilter.Verify(ef => ef.GetEvents(), Times.Once);
}

[Fact]
public void ApplyFilters_WithPostalCode_ShouldCallFilterByAddressPostalCode()
{
// Arrange
var filters = new EventFiltersDto(
Name: null,
Descritpion: null,
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: "00-001",
CategoriesNames: null
);

// Act
_eventFilterApplier.ApplyFilters(filters);

// Assert
_mockEventFilter.Verify(ef => ef.FilterByAddressPostalCode(filters.PostalCode!), Times.Once);
_mockEventFilter.Verify(ef => ef.GetEvents(), Times.Once);
}

[Fact]
public void ApplyFilters_WithCategoriesNames_ShouldCallFilterByCategoriesNames()
{
// Arrange
var categoriesNames = new List<string> { "Concert", "Festival", "Exhibition" };
var filters = new EventFiltersDto(
Name: null,
Descritpion: null,
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: categoriesNames
);

// Act
_eventFilterApplier.ApplyFilters(filters);

// Assert
_mockEventFilter.Verify(ef => ef.FilterByCategoriesNames(filters.CategoriesNames!), Times.Once);
_mockEventFilter.Verify(ef => ef.GetEvents(), Times.Once);
}

[Fact]
public void ApplyFilters_WithMultipleFilters_ShouldCallAllRelevantFilters()
Expand All @@ -600,7 +703,9 @@ public void ApplyFilters_WithMultipleFilters_ShouldCallAllRelevantFilters()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down Expand Up @@ -641,7 +746,9 @@ public void ApplyFilters_WithNoFilters_ShouldOnlyCallGetEvents()
AddressCity: null,
AddressStreet: null,
HouseNumber: null,
FlatNumber: null
FlatNumber: null,
PostalCode: null,
CategoriesNames: null
);

// Act
Expand Down
4 changes: 3 additions & 1 deletion TickAPI/TickAPI/Events/DTOs/Request/EventFiltersDto.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,7 @@ public record EventFiltersDto(
string? AddressCity,
string? AddressStreet,
uint? HouseNumber,
uint? FlatNumber
uint? FlatNumber,
string? PostalCode,
List<string>? CategoriesNames
);
4 changes: 3 additions & 1 deletion TickAPI/TickAPI/Events/Filters/EventFilterApplier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ public EventFilterApplier(IEventFilter eventFilter)
{ f => !string.IsNullOrEmpty(f.AddressStreet), f => _eventFilter.FilterByAddressStreet(
f.AddressStreet!,
f.HouseNumber,
f.FlatNumber) }
f.FlatNumber) },
{f => !string.IsNullOrEmpty(f.PostalCode), f => _eventFilter.FilterByAddressPostalCode(f.PostalCode!)},
{f => f.CategoriesNames is { Count: > 0 }, f => _eventFilter.FilterByCategoriesNames(f.CategoriesNames!)}
};
}

Expand Down
Loading