public void ToDicionaryTest() { var constValue = false; var newObject = new ODataTypeEntity { IsOpen = false }; var dictionary = _odataQueryBuilderDefault .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter(s => s.IsActive && s.IsOpen == constValue && s.IsOpen == true && s.ODataKind.ODataCode.IdActive == newObject.IsOpen) .Skip(1) .Top(10) .ToDictionary(); var resultEquivalent = new Dictionary <string, string> { { "$filter", "IsActive and IsOpen eq false and IsOpen eq true and ODataKind/ODataCode/IdActive eq false" }, { "$skip", "1" }, { "$top", "10" } }; dictionary.Should().BeEquivalentTo(resultEquivalent); }
public void ODataQueryBuilderList_Operator_In_Success() { var constStrIds = new[] { "123", "512" }; var constStrListIds = new[] { "123", "512" }.ToList(); var constIntIds = new[] { 123, 512 }; var constIntListIds = new[] { 123, 512 }.ToList(); var newObject = new ODataTypeEntity { ODataKind = new ODataKindEntity { Sequence = constIntListIds } }; var newObjectSequenceArray = new ODataTypeEntity { ODataKind = new ODataKindEntity { SequenceArray = constIntIds } }; var uri = _odataQueryBuilderDefault .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f, o) => o.In(s.ODataKind.ODataCode.Code, constStrIds) && o.In(s.ODataKind.ODataCode.Code, constStrIds) && o.In(s.ODataKind.ODataCode.Code, constStrListIds) && o.In(s.IdType, constIntIds) && o.In(s.IdType, constIntListIds) && o.In((int)s.IdRule, constIntIds) && o.In((int)s.IdRule, constIntListIds) && o.In(s.ODataKind.IdKind, newObject.ODataKind.Sequence) && o.In(s.ODataKind.ODataCode.IdCode, newObjectSequenceArray.ODataKind.SequenceArray)) .ToUri(); uri.OriginalString.Should().Be("http://mock/odata/ODataType?$filter=ODataKind/ODataCode/Code in ('123','512') and ODataKind/ODataCode/Code in ('123','512') and ODataKind/ODataCode/Code in ('123','512') and IdType in (123,512) and IdType in (123,512) and IdRule in (123,512) and IdRule in (123,512) and ODataKind/IdKind in (123,512) and ODataKind/ODataCode/IdCode in (123,512)"); }
public void ODataQueryBuilderList_concat_string_simple_argument2_exception() { var constValue = default(string); var newObject = new ODataTypeEntity { TypeCode = string.Empty }; _odataQueryBuilderDefault.Invoking( (r) => r .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f) => f.Concat(constValue, s.TypeCode) == "typeCodeTest;") .ToUri()) .Should().Throw <ArgumentException>().WithMessage("Value is empty or null"); }
public void ODataQueryBuilderList_Filter_Boolean_Values_Success() { var constValue = false; var newObject = new ODataTypeEntity { IsOpen = false }; var uri = _odataQueryBuilderDefault .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter(s => s.IsActive && s.IsOpen == constValue && s.IsOpen == true && s.ODataKind.ODataCode.IdActive == newObject.IsOpen) .ToUri(); uri.OriginalString.Should().Be("http://mock/odata/ODataType?$filter=IsActive and IsOpen eq false and IsOpen eq true and ODataKind/ODataCode/IdActive eq false"); }
public void ODataQueryBuilderList_Test_Contains_Simple() { var constValue = "p".ToLower(); var newObject = new ODataTypeEntity { TypeCode = "TypeCodeValue".ToLower() }; var uri = _odataQueryBuilderDefault .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f) => f.Contains(f.ToLower(s.ODataKind.ODataCode.Code), "W") || f.Contains(s.ODataKind.ODataCode.Code, constValue) || f.Contains(s.ODataKindNew.ODataCode.Code, newObject.TypeCode) || f.Contains(s.ODataKindNew.ODataCode.Code, "55")) .ToUri(); uri.OriginalString.Should().Be("http://mock/odata/ODataType?$filter=contains(tolower(ODataKind/ODataCode/Code),'W') or contains(ODataKind/ODataCode/Code,'p') or contains(ODataKindNew/ODataCode/Code,'typecodevalue') or contains(ODataKindNew/ODataCode/Code,'55')"); }
public void ODataQueryBuilderList_Test_Substringof_Simple() { var constValue = "p".ToUpper(); var newObject = new ODataTypeEntity { TypeCode = "TypeCodeValue".ToUpper() }; var uri = _odataQueryBuilderDefault .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f) => f.SubstringOf("W", f.ToUpper(s.ODataKind.ODataCode.Code)) || f.SubstringOf(constValue, s.ODataKind.ODataCode.Code) || f.SubstringOf(newObject.TypeCode, s.ODataKindNew.ODataCode.Code) || f.SubstringOf("55", s.ODataKindNew.ODataCode.Code)) .ToUri(); uri.OriginalString.Should().Be("http://mock/odata/ODataType?$filter=substringof('W',toupper(ODataKind/ODataCode/Code)) or substringof('P',ODataKind/ODataCode/Code) or substringof('TYPECODEVALUE',ODataKindNew/ODataCode/Code) or substringof('55',ODataKindNew/ODataCode/Code)"); }
public void ODataQueryBuilderList_nested_concat_string_simple_success3() { var constParam = ", "; var constParamObject = new ODataTypeEntity { ODataKind = new ODataKindEntity { ODataCode = new ODataCodeEntity { Code = constParam } } }; var uri = _odataQueryBuilderDefault .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f) => f.Concat(f.Concat(s.TypeCode, constParamObject.ODataKind.ODataCode.Code), s.ODataKind.ODataCode.Code) == "testTypeCode1, testTypeCode2") .ToUri(); uri.OriginalString.Should().Be("http://mock/odata/ODataType?$filter=concat(concat(TypeCode,', '),ODataKind/ODataCode/Code) eq 'testTypeCode1, testTypeCode2'"); }
public void ODataQueryBuilderList_Test_Contains_is_null_or_empty_value_ArgumentException() { var constValue = default(string); var newObject = new ODataTypeEntity { TypeCode = string.Empty }; _odataQueryBuilderDefault.Invoking( (r) => r .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f) => f.Contains(f.ToLower(s.ODataKind.ODataCode.Code), null) || f.Contains(s.ODataKind.ODataCode.Code, constValue) || f.Contains(s.ODataKindNew.ODataCode.Code, newObject.TypeCode) || f.Contains(s.ODataKindNew.ODataCode.Code, string.Empty)) .ToUri()) .Should().Throw <ArgumentException>().WithMessage("Value is empty or null"); }
public void ODataQueryBuilderList_Operator_In_Empty_Success() { var odataQueryBuilderOptions = new ODataQueryBuilderOptions { SuppressExceptionOfNullOrEmptyOperatorArgs = true }; var odataQueryBuilder = new ODataQueryBuilder <ODataInfoContainer>( _commonFixture.BaseUri, odataQueryBuilderOptions); var constStrIds = default(IEnumerable <string>); var constEmprtyStrListIds = new string[] { }.ToList(); var constIntIds = default(int[]); var constEmptyIntIds = new int[0]; var constIntListIds = new[] { 123, 512 }.ToList(); var newObject = new ODataTypeEntity { ODataKind = new ODataKindEntity { Sequence = constIntListIds } }; var newObjectSequenceArray = new ODataTypeEntity { ODataKind = new ODataKindEntity { SequenceArray = constIntIds } }; var uri = odataQueryBuilder .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f, o) => o.In(s.ODataKind.ODataCode.Code, constStrIds) && o.In(s.ODataKind.ODataCode.Code, constEmprtyStrListIds) && o.In(s.IdType, constIntIds) && o.In(s.IdType, constEmptyIntIds) && o.In(s.IdType, constIntListIds) && o.In((int)s.IdRule, constIntIds) && o.In((int)s.IdRule, constIntListIds) && o.In(s.ODataKind.IdKind, newObject.ODataKind.Sequence) && o.In(s.ODataKind.ODataCode.IdCode, newObjectSequenceArray.ODataKind.SequenceArray)) .ToUri(); uri.OriginalString.Should().Be("http://mock/odata/ODataType?$filter=IdType in (123,512) and IdRule in (123,512) and ODataKind/IdKind in (123,512)"); }
public void ODataQueryBuilderList_Function_Date_Success() { var currentDateToday = new DateTime(2019, 2, 9); var currentDateNow = new DateTime(2019, 2, 9, 1, 2, 4); var newObject = new ODataTypeEntity { ODataKind = new ODataKindEntity { EndDate = currentDateToday } }; var uri = _odataQueryBuilderDefault .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f) => f.Date(s.ODataKind.OpenDate) == currentDateNow && s.ODataKind.OpenDate == currentDateToday && s.ODataKind.OpenDate == DateTime.Today && f.Date(s.Open) == DateTime.Today && f.Date(s.Open) == DateTimeOffset.Now && s.Open == DateTime.Today && s.Open == currentDateToday && f.Date(s.Open) == newObject.ODataKind.EndDate && f.Date(s.ODataKind.OpenDate) == new DateTime(2019, 7, 9) && f.Date(s.ODataKind.OpenDate) == new DateTimeOffset(currentDateToday) && f.Date((DateTimeOffset)s.BeginDate) == DateTime.Today) .ToUri(); uri.OriginalString.Should().Be($"http://mock/odata/ODataType?$filter=" + $"date(ODataKind/OpenDate) eq 2019-02-09T01:02:04Z " + $"and ODataKind/OpenDate eq 2019-02-09T00:00:00Z " + $"and ODataKind/OpenDate eq {DateTime.Today:s}Z " + $"and date(Open) eq {DateTime.Today:s}Z " + $"and date(Open) eq {DateTimeOffset.Now:s}Z " + $"and Open eq {DateTime.Today:s}Z " + $"and Open eq 2019-02-09T00:00:00Z " + $"and date(Open) eq 2019-02-09T00:00:00Z " + $"and date(ODataKind/OpenDate) eq 2019-07-09T00:00:00Z " + $"and date(ODataKind/OpenDate) eq 2019-02-09T00:00:00Z " + $"and date(BeginDate) eq {DateTime.Today:s}Z"); }
public void ODataQueryBuilderList_Operator_In_is_null_4() { var constIntIds = default(int[]); var newObjectSequenceArray = new ODataTypeEntity { ODataKind = new ODataKindEntity { SequenceArray = constIntIds } }; var odataQueryBuilderOptions = new ODataQueryBuilderOptions { SuppressExceptionOfNullOrEmptyOperatorArgs = false }; var odataQueryBuilder = new ODataQueryBuilder <ODataInfoContainer>( _commonFixture.BaseUri, odataQueryBuilderOptions); odataQueryBuilder.Invoking( (r) => r .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f, o) => o.In(s.ODataKind.ODataCode.IdCode, newObjectSequenceArray.ODataKind.SequenceArray)) .ToUri()) .Should().Throw <ArgumentException>().WithMessage("Enumeration is empty or null"); }
public void ODataQueryBuilderList_Test_Contains_is_null_or_empty_value_Success() { var odataQueryBuilderOptions = new ODataQueryBuilderOptions { SuppressExceptionOfNullOrEmptyFunctionArgs = true }; var odataQueryBuilder = new ODataQueryBuilder <ODataInfoContainer>( _commonFixture.BaseUri, odataQueryBuilderOptions); var constValue = "P"; var newObject = new ODataTypeEntity { TypeCode = string.Empty }; var uri = odataQueryBuilder .For <ODataTypeEntity>(s => s.ODataType) .ByList() .Filter((s, f) => f.Contains(f.ToLower(s.ODataKind.ODataCode.Code), null) || f.Contains(s.ODataKind.ODataCode.Code, constValue) || f.Contains(s.ODataKindNew.ODataCode.Code, newObject.TypeCode) || f.Contains(s.ODataKindNew.ODataCode.Code, string.Empty)) .ToUri(); uri.OriginalString.Should().Be("http://mock/odata/ODataType?$filter=contains(ODataKind/ODataCode/Code,'P')"); }