Events-MVC (example with htmx)
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
using Events.MVC.Util.Extensions;
|
||||
using Sieve.Models;
|
||||
|
||||
namespace Events.Tests.UnitTests.Util;
|
||||
|
||||
public class SieveModelExtensionsTests
|
||||
{
|
||||
[Fact]
|
||||
public void SetDefaultPagingAndSorting_AssignsDefaults_WhenValuesAreMissing()
|
||||
{
|
||||
var model = new SieveModel();
|
||||
|
||||
model.SetDefaultPagingAndSorting(defaultPageSize: 10, defaultSort: "Name");
|
||||
|
||||
Assert.Equal(1, model.Page);
|
||||
Assert.Equal(10, model.PageSize);
|
||||
Assert.Equal("Name", model.Sorts);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetDefaultPagingAndSorting_ClampsInvalidPage_AndPageSize()
|
||||
{
|
||||
var model = new SieveModel
|
||||
{
|
||||
Page = 0,
|
||||
PageSize = -5
|
||||
};
|
||||
|
||||
model.SetDefaultPagingAndSorting(defaultPageSize: 20, defaultSort: "RegisteredAt");
|
||||
|
||||
Assert.Equal(1, model.Page);
|
||||
Assert.Equal(20, model.PageSize);
|
||||
Assert.Equal("RegisteredAt", model.Sorts);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("Name@=*basketball", "Name", "basketball")]
|
||||
[InlineData("Name@=basketball", "Name", "basketball")]
|
||||
[InlineData("PersonTranscription@=*ivan", "PersonTranscription", "ivan")]
|
||||
[InlineData(" PersonTranscription@=*ivan ", "PersonTranscription", "ivan")]
|
||||
public void ExtractFilterValue_ReturnsExpectedValue_ForDefaultOperators(
|
||||
string filters,
|
||||
string propertyName,
|
||||
string expected)
|
||||
{
|
||||
var value = SieveModelExtensions.ExtractFilterValue(filters, propertyName);
|
||||
|
||||
Assert.Equal(expected, value);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("CountryCode==HR", "CountryCode", "HR")]
|
||||
[InlineData("PersonTranscription@=*ivan,CountryCode==HR", "CountryCode", "HR")]
|
||||
[InlineData("CountryCode==HR,PersonTranscription@=*ivan", "CountryCode", "HR")]
|
||||
public void ExtractFilterValue_ReturnsExpectedValue_ForCustomOperator(
|
||||
string filters,
|
||||
string propertyName,
|
||||
string expected)
|
||||
{
|
||||
var value = SieveModelExtensions.ExtractFilterValue(filters, propertyName, "==");
|
||||
|
||||
Assert.Equal(expected, value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExtractFilterValue_ReturnsEmptyString_WhenPropertyIsMissing()
|
||||
{
|
||||
var value = SieveModelExtensions.ExtractFilterValue(
|
||||
"PersonTranscription@=*ivan,CountryCode==HR",
|
||||
"Name");
|
||||
|
||||
Assert.Equal(string.Empty, value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExtractFilterValue_FromModel_UsesFiltersProperty()
|
||||
{
|
||||
var model = new SieveModel
|
||||
{
|
||||
Filters = "FullName@=*ana"
|
||||
};
|
||||
|
||||
var value = model.ExtractFilterValue("FullName");
|
||||
|
||||
Assert.Equal("ana", value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user