public void ApplyToOfTDefaultSkipTokenHandler_Applies_ToQuaryable() { // Arrange ODataQuerySettings settings = new ODataQuerySettings { HandleNullPropagation = HandleNullPropagationOption.False }; ODataQueryContext context = new ODataQueryContext(_model, typeof(SkipCustomer)); SkipTokenQueryOption skipTokenQuery = new SkipTokenQueryOption("Id-2", context); DefaultSkipTokenHandler handler = new DefaultSkipTokenHandler(); IQueryable <SkipCustomer> customers = new List <SkipCustomer> { new SkipCustomer { Id = 2, Name = "Aaron" }, new SkipCustomer { Id = 1, Name = "Andy" }, new SkipCustomer { Id = 3, Name = "Alex" } }.AsQueryable(); // Act SkipCustomer[] results = handler.ApplyTo(customers, skipTokenQuery, settings, null).ToArray(); // Assert SkipCustomer skipTokenCustomer = Assert.Single(results); Assert.Equal(3, skipTokenCustomer.Id); Assert.Equal("Alex", skipTokenCustomer.Name); }
public void GenerateSkipTokenValue_Returns_SkipTokenValue() { // Arrange SkipCustomer lastMember = new SkipCustomer { Id = 42, Name = "ZX" }; // Act string skipTokenValue = DefaultSkipTokenHandler.GenerateSkipTokenValue(lastMember, _model, null); // Assert Assert.Equal("Id-42", skipTokenValue); }
public void GetNextPageLinkDefaultSkipTokenHandler_Returns_CorrectSkipTokenLink(string baseUri, string expectedUri) { // Arrange ODataSerializerContext serializerContext = GetSerializerContext(_model, true); DefaultSkipTokenHandler handler = new DefaultSkipTokenHandler(); SkipCustomer instance = new SkipCustomer { Id = 42, Name = "ZX" }; // Act Uri uri = handler.GenerateNextPageLink(new Uri(baseUri), 10, instance, serializerContext); var actualUri = uri.ToString(); // Assert Assert.Equal(expectedUri, actualUri); }
public void GenerateSkipTokenValue_Returns_SkipTokenValue_WithOrderby_IfNullValue() { // Arrange SkipCustomer lastMember = new SkipCustomer { Id = 42, Name = null }; IEdmEntityType entityType = _model.SchemaElements.OfType <IEdmEntityType>().First(c => c.Name == "SkipCustomer"); IEdmProperty property = entityType.FindProperty("Name"); IList <OrderByNode> orderByNodes = new List <OrderByNode> { new OrderByPropertyNode(property, OrderByDirection.Ascending) }; // Act string skipTokenValue = DefaultSkipTokenHandler.GenerateSkipTokenValue(lastMember, _model, orderByNodes); // Assert Assert.Equal("Name-null,Id-42", skipTokenValue); }
public void GenerateSkipTokenValue_Returns_SkipTokenValue_WithOrderby_WithEnumValue() { // Arrange SkipCustomer lastMember = new SkipCustomer { Id = 42, Name = "ZX", Gender = Gender.Male }; IEdmEntityType entityType = _model.SchemaElements.OfType <IEdmEntityType>().First(c => c.Name == "SkipCustomer"); IEdmProperty property = entityType.FindProperty("Gender"); IList <OrderByNode> orderByNodes = new List <OrderByNode> { new OrderByPropertyNode(property, OrderByDirection.Ascending) }; // Act string skipTokenValue = DefaultSkipTokenHandler.GenerateSkipTokenValue(lastMember, _model, orderByNodes); // Assert Assert.Equal("Gender-Microsoft.AspNetCore.OData.Tests.Query.DefaultSkipTokenHandlerTests%2BGender%27Male%27,Id-42", skipTokenValue); }
public void GenerateSkipTokenValue_Returns_SkipTokenValue_WithDateTimeOffset() { // Arrange SkipCustomer lastMember = new SkipCustomer { Id = 42, Birthday = new DateTime(2021, 01, 20, 3, 4, 5, DateTimeKind.Utc) }; TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); // -8 IEdmEntityType entityType = _model.SchemaElements.OfType <IEdmEntityType>().First(c => c.Name == "SkipCustomer"); IEdmProperty property = entityType.FindProperty("Birthday"); IList <OrderByNode> orderByNodes = new List <OrderByNode> { new OrderByPropertyNode(property, OrderByDirection.Ascending) }; // Act string skipTokenValue = DefaultSkipTokenHandler.GenerateSkipTokenValue(lastMember, _model, orderByNodes, timeZone); // Assert Assert.Equal("Birthday-2021-01-19T19%3A04%3A05-08%3A00,Id-42", skipTokenValue); }