88 lines
2.5 KiB
C#
88 lines
2.5 KiB
C#
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);
|
|
}
|
|
}
|