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]
|
[Fact]
|
||||||
public async Task ListFilesAsync_WhenCalled_ItShouldReturnPageOfFiles()
|
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]
|
[Fact]
|
||||||
public async Task ListFilesAsync_WhenCalledWithPagingRequest_ItShouldReturnPageOfFiles()
|
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]
|
[Fact]
|
||||||
public async Task GetFileAsync_WhenCalled_ItShouldReturnFileContent()
|
public async Task GetFileAsync_WhenCalled_ItShouldReturnFileContent()
|
||||||
{
|
{
|
||||||
@@ -2228,6 +2305,32 @@ public class AnthropicApiClientTests : IntegrationTest
|
|||||||
content.Should().Be("Example file content");
|
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]
|
[Fact]
|
||||||
public async Task DeleteFileAsync_WhenCalled_ItShouldReturnDeletionResponse()
|
public async Task DeleteFileAsync_WhenCalled_ItShouldReturnDeletionResponse()
|
||||||
{
|
{
|
||||||
@@ -2251,4 +2354,30 @@ public class AnthropicApiClientTests : IntegrationTest
|
|||||||
result.Value.Id.Should().Be(fileId);
|
result.Value.Id.Should().Be(fileId);
|
||||||
result.Value.Type.Should().Be("file_deleted");
|
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