Skip to content

Commit c63cdcd

Browse files
committed
Some regression tests for OData related issues
Resolves #23135 Resolves #24092
1 parent 1a3f625 commit c63cdcd

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

test/EFCore.OData.FunctionalTests/Query/ComplexNavigationsODataQueryTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,21 @@ public async Task Query_level_four()
8080

8181
Assert.Equal(10, levelFours.Count);
8282
}
83+
84+
[ConditionalFact]
85+
public async Task Query_count_expand_with_filter_contains()
86+
{
87+
var requestUri = $"{BaseAddress}/odata/LevelOne?$count=true&$expand=OneToOne_Required_FK1&$filter=OneToOne_Required_FK1/Id in (1)";
88+
var request = new HttpRequestMessage(HttpMethod.Get, requestUri);
89+
var response = await Client.SendAsync(request);
90+
91+
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
92+
var result = await response.Content.ReadAsObject<JObject>();
93+
94+
Assert.Contains("$metadata#LevelOne(OneToOne_Required_FK1())", result["@odata.context"].ToString());
95+
Assert.Equal(1, result["@odata.count"]);
96+
var projection = result["value"] as JArray;
97+
Assert.Single(projection);
98+
}
8399
}
84100
}

test/EFCore.OData.FunctionalTests/Query/GearsOfWarODataQueryTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,5 +79,21 @@ public async Task Complex_query_with_any_on_collection_navigation()
7979

8080
Assert.Equal(3, officers.Count);
8181
}
82+
83+
[ConditionalFact]
84+
public async Task Query_with_expand_and_key_projection()
85+
{
86+
var requestUri = string.Format(@"{0}/odata/Gears?$select=SquadId&$expand=Tag($select=Id)", BaseAddress);
87+
var request = new HttpRequestMessage(HttpMethod.Get, requestUri);
88+
var response = await Client.SendAsync(request);
89+
90+
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
91+
var result = await response.Content.ReadAsObject<JObject>();
92+
93+
Assert.Contains("$metadata#Gears(SquadId,Tag(Id))", result["@odata.context"].ToString());
94+
var projections = result["value"] as JArray;
95+
96+
Assert.Equal(5, projections.Count);
97+
}
8298
}
8399
}

0 commit comments

Comments
 (0)