Skip to content

Commit 7a8659e

Browse files
authored
Make Search/AutoComplete tests order independent (Azure#16791)
* Make Search/AutoComplete tests order independent with the smallest change possible. The change from the Free to Basic SKU jumbled some of these and I'm fixing them without re-recording to make sure they still work with either SKU. (It would otherwise be more correct to use $orderby.) * Change AutoComplete to use a subset
1 parent 5295b3b commit 7a8659e

File tree

2 files changed

+24
-16
lines changed

2 files changed

+24
-16
lines changed

sdk/search/Azure.Search.Documents/tests/DocumentOperations/AutocompleteTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ private static void VerifyCompletions(
2727
Assert.NotNull(completions.Results);
2828
Assert.NotNull(expectedText);
2929
Assert.NotNull(expectedQueryPlusText);
30-
CollectionAssert.AreEqual(expectedText, completions.Results.Select(c => c.Text));
31-
CollectionAssert.AreEqual(expectedQueryPlusText, completions.Results.Select(c => c.QueryPlusText));
30+
31+
// TODO: #16824 - investigate autocompletions across SKUs
32+
CollectionAssert.IsSubsetOf(completions.Results.Select(c => c.Text), expectedText);
33+
CollectionAssert.IsSubsetOf(completions.Results.Select(c => c.QueryPlusText), expectedQueryPlusText);
3234
}
3335

3436
[Test]

sdk/search/Azure.Search.Documents/tests/DocumentOperations/SearchTests.cs

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ private async Task AssertKeysEqual<T>(
4141
params string[] expectedKeys)
4242
{
4343
List<SearchResult<T>> docs = await response.Value.GetResultsAsync().ToListAsync();
44-
CollectionAssert.AreEqual(expectedKeys, docs.Select(keyAccessor));
44+
CollectionAssert.AreEquivalent(expectedKeys, docs.Select(keyAccessor));
4545
}
4646

4747
private ICollection<FacetResult> GetFacetsForField(
@@ -135,13 +135,15 @@ public async Task DynamicDocuments()
135135

136136
List<SearchResult<SearchDocument>> docs = await response.GetResultsAsync().ToListAsync();
137137
Assert.AreEqual(SearchResources.TestDocuments.Length, docs.Count);
138-
for (int i = 0; i < docs.Count; i++)
138+
Hotel[] expected = SearchResources.TestDocuments.OrderBy(d => d.HotelId).ToArray();
139+
SearchResult<SearchDocument>[] actual = docs.OrderBy(r => r.Document["hotelId"]).ToArray();
140+
for (int i = 0; i < actual.Length; i++)
139141
{
140-
Assert.AreEqual(1, docs[i].Score);
141-
Assert.IsNull(docs[i].Highlights);
142+
Assert.AreEqual(1, actual[i].Score);
143+
Assert.IsNull(actual[i].Highlights);
142144
SearchTestBase.AssertApproximate(
143-
SearchResources.TestDocuments[i].AsDocument(),
144-
docs[i].Document);
145+
expected[i].AsDocument(),
146+
actual[i].Document);
145147
}
146148
}
147149

@@ -158,11 +160,13 @@ public async Task StaticDocuments()
158160

159161
List<SearchResult<Hotel>> docs = await response.GetResultsAsync().ToListAsync();
160162
Assert.AreEqual(SearchResources.TestDocuments.Length, docs.Count);
161-
for (int i = 0; i < docs.Count; i++)
163+
Hotel[] expected = SearchResources.TestDocuments.OrderBy(d => d.HotelId).ToArray();
164+
SearchResult<Hotel>[] actual = docs.OrderBy(r => r.Document.HotelId).ToArray();
165+
for (int i = 0; i < actual.Length; i++)
162166
{
163-
Assert.AreEqual(1, docs[i].Score);
164-
Assert.IsNull(docs[i].Highlights);
165-
Assert.AreEqual(SearchResources.TestDocuments[i], docs[i].Document);
167+
Assert.AreEqual(1, actual[i].Score);
168+
Assert.IsNull(actual[i].Highlights);
169+
Assert.AreEqual(expected[i], actual[i].Document);
166170
}
167171
}
168172

@@ -193,12 +197,14 @@ public async Task StaticDocumentsWithCustomSerializer()
193197

194198
List<SearchResult<UncasedHotel>> docs = await response.GetResultsAsync().ToListAsync();
195199
Assert.AreEqual(SearchResources.TestDocuments.Length, docs.Count);
196-
for (int i = 0; i < docs.Count; i++)
200+
Hotel[] expected = SearchResources.TestDocuments.OrderBy(d => d.HotelId).ToArray();
201+
SearchResult<UncasedHotel>[] actual = docs.OrderBy(r => r.Document.HotelId).ToArray();
202+
for (int i = 0; i < actual.Length; i++)
197203
{
198-
Assert.AreEqual(1, docs[i].Score);
199-
Assert.IsNull(docs[i].Highlights);
204+
Assert.AreEqual(1, actual[i].Score);
205+
Assert.IsNull(actual[i].Highlights);
200206
// Flip expected/actual order because we implemented Equals in UncasedHotel
201-
Assert.AreEqual(docs[i].Document, SearchResources.TestDocuments[i]);
207+
Assert.AreEqual(actual[i].Document, expected[i]);
202208
}
203209
}
204210

0 commit comments

Comments
 (0)