Skip to content

Commit 24aab72

Browse files
[Search] Update error message comparison for invalid document update (Azure#25855)
1 parent d730e18 commit 24aab72

File tree

3 files changed

+76
-64
lines changed

3 files changed

+76
-64
lines changed

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
using System.Text.Json;
88
using System.Text.Json.Serialization;
99
using System.Threading.Tasks;
10-
using Azure.Core.GeoJson;
1110
using Azure.Core.Serialization;
1211
using Azure.Core.TestFramework;
1312
using Azure.Search.Documents.Models;
@@ -848,7 +847,18 @@ public async Task ThrowsOnInvalidDocument()
848847
batch,
849848
new IndexDocumentsOptions { ThrowOnAnyError = true }));
850849
Assert.AreEqual(400, ex.Status);
851-
StringAssert.StartsWith("The request is invalid. Details: actions : 0: Document key cannot be missing or empty.", ex.Message);
850+
StringAssert.StartsWith("The request is invalid.", ex.Message);
851+
852+
int errorJsonStartIndex = ex.Message.IndexOf("{");
853+
int errorJsonEndIndex = ex.Message.LastIndexOf("}");
854+
string errorJsonContent = ex.Message.Substring(errorJsonStartIndex, errorJsonEndIndex - errorJsonStartIndex + 1);
855+
856+
JsonElement errorElement = JsonDocument.Parse(errorJsonContent).RootElement.GetProperty("error");
857+
StringAssert.AreEqualIgnoringCase("OperationNotAllowed", errorElement.GetProperty("code").GetString());
858+
StringAssert.AreEqualIgnoringCase("The request is invalid.", errorElement.GetProperty("message").GetString());
859+
JsonElement details = errorElement.GetProperty("details");
860+
StringAssert.AreEqualIgnoringCase("MissingKeyField", details[0].GetProperty("code").GetString());
861+
StringAssert.AreEqualIgnoringCase("0: Document key cannot be missing or empty. Parameters: actions", details[0].GetProperty("message").GetString());
852862
}
853863

854864
[Test]

sdk/search/Azure.Search.Documents/tests/SessionRecords/IndexingTests/ThrowsOnInvalidDocument.json

Lines changed: 32 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/search/Azure.Search.Documents/tests/SessionRecords/IndexingTests/ThrowsOnInvalidDocumentAsync.json

Lines changed: 32 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)