tests: add tests for sad path in new files methods
This commit is contained in:
@@ -1966,6 +1966,33 @@ public class AnthropicApiClientTests : IntegrationTest
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task CreateFileAsync_WhenCalledAndRequestFails_ItShouldReturnError()
|
||||
{
|
||||
_mockHttpMessageHandler
|
||||
.WhenCreateFileRequest()
|
||||
.Respond(
|
||||
HttpStatusCode.BadRequest,
|
||||
"application/json",
|
||||
@"{
|
||||
""type"": ""error"",
|
||||
""error"": {
|
||||
""type"": ""invalid_request_error"",
|
||||
""message"": ""file: file size exceeds limit""
|
||||
}
|
||||
}"
|
||||
);
|
||||
|
||||
var fileContent = new MemoryStream(Encoding.UTF8.GetBytes("Example file content"));
|
||||
var request = new CreateFileRequest(fileContent, "example.txt", "text/plain");
|
||||
|
||||
var result = await Client.CreateFileAsync(request);
|
||||
|
||||
result.IsSuccess.Should().BeFalse();
|
||||
result.Error.Should().BeOfType<AnthropicError>();
|
||||
result.Error.Error.Should().BeOfType<InvalidRequestError>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ListFilesAsync_WhenCalled_ItShouldReturnPageOfFiles()
|
||||
{
|
||||
@@ -2014,6 +2041,30 @@ public class AnthropicApiClientTests : IntegrationTest
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ListFilesAsync_WhenCalledAndRequestFails_ItShouldReturnError()
|
||||
{
|
||||
_mockHttpMessageHandler
|
||||
.WhenListFilesRequest()
|
||||
.Respond(
|
||||
HttpStatusCode.BadRequest,
|
||||
"application/json",
|
||||
@"{
|
||||
""type"": ""error"",
|
||||
""error"": {
|
||||
""type"": ""invalid_request_error"",
|
||||
""message"": ""files: file not found""
|
||||
}
|
||||
}"
|
||||
);
|
||||
|
||||
var result = await Client.ListFilesAsync();
|
||||
|
||||
result.IsSuccess.Should().BeFalse();
|
||||
result.Error.Should().BeOfType<AnthropicError>();
|
||||
result.Error.Error.Should().BeOfType<InvalidRequestError>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ListFilesAsync_WhenCalledWithPagingRequest_ItShouldReturnPageOfFiles()
|
||||
{
|
||||
@@ -2204,6 +2255,32 @@ public class AnthropicApiClientTests : IntegrationTest
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetFileInfoAsync_WhenCalledAndRequestFails_ItShouldReturnError()
|
||||
{
|
||||
var fileId = "file_013Zva2CMHLNnXjNJJKqJ2EF";
|
||||
|
||||
_mockHttpMessageHandler
|
||||
.WhenGetFileRequest(fileId)
|
||||
.Respond(
|
||||
HttpStatusCode.BadRequest,
|
||||
"application/json",
|
||||
@"{
|
||||
""type"": ""error"",
|
||||
""error"": {
|
||||
""type"": ""invalid_request_error"",
|
||||
""message"": ""file: file not found""
|
||||
}
|
||||
}"
|
||||
);
|
||||
|
||||
var result = await Client.GetFileInfoAsync(fileId);
|
||||
|
||||
result.IsSuccess.Should().BeFalse();
|
||||
result.Error.Should().BeOfType<AnthropicError>();
|
||||
result.Error.Error.Should().BeOfType<InvalidRequestError>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetFileAsync_WhenCalled_ItShouldReturnFileContent()
|
||||
{
|
||||
@@ -2228,6 +2305,32 @@ public class AnthropicApiClientTests : IntegrationTest
|
||||
content.Should().Be("Example file content");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetFileAsync_WhenCalledAndRequestFails_ItShouldReturnError()
|
||||
{
|
||||
var fileId = "file_013Zva2CMHLNnXjNJJKqJ2EF";
|
||||
|
||||
_mockHttpMessageHandler
|
||||
.WhenGetFileContentRequest(fileId)
|
||||
.Respond(
|
||||
HttpStatusCode.BadRequest,
|
||||
"application/json",
|
||||
@"{
|
||||
""type"": ""error"",
|
||||
""error"": {
|
||||
""type"": ""invalid_request_error"",
|
||||
""message"": ""file: file not found""
|
||||
}
|
||||
}"
|
||||
);
|
||||
|
||||
var result = await Client.GetFileAsync(fileId);
|
||||
|
||||
result.IsSuccess.Should().BeFalse();
|
||||
result.Error.Should().BeOfType<AnthropicError>();
|
||||
result.Error.Error.Should().BeOfType<InvalidRequestError>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteFileAsync_WhenCalled_ItShouldReturnDeletionResponse()
|
||||
{
|
||||
@@ -2251,4 +2354,30 @@ public class AnthropicApiClientTests : IntegrationTest
|
||||
result.Value.Id.Should().Be(fileId);
|
||||
result.Value.Type.Should().Be("file_deleted");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteFileAsync_WhenCalledAndRequestFails_ItShouldReturnError()
|
||||
{
|
||||
var fileId = "file_013Zva2CMHLNnXjNJJKqJ2EF";
|
||||
|
||||
_mockHttpMessageHandler
|
||||
.WhenDeleteFileRequest(fileId)
|
||||
.Respond(
|
||||
HttpStatusCode.BadRequest,
|
||||
"application/json",
|
||||
@"{
|
||||
""type"": ""error"",
|
||||
""error"": {
|
||||
""type"": ""invalid_request_error"",
|
||||
""message"": ""file: file not found""
|
||||
}
|
||||
}"
|
||||
);
|
||||
|
||||
var result = await Client.DeleteFileAsync(fileId);
|
||||
|
||||
result.IsSuccess.Should().BeFalse();
|
||||
result.Error.Should().BeOfType<AnthropicError>();
|
||||
result.Error.Error.Should().BeOfType<InvalidRequestError>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user