111 lines
4.9 KiB
C#
Generated
111 lines
4.9 KiB
C#
Generated
// This file is auto-generated by alef — DO NOT EDIT.
|
|
// alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
|
|
// To regenerate: alef generate
|
|
// To verify freshness: alef verify --exit-code
|
|
// Issues & docs: https://github.com/kreuzberg-dev/alef
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
using System.Threading.Tasks;
|
|
using Xunit;
|
|
using Kreuzberg;
|
|
using static Kreuzberg.KreuzbergLib;
|
|
|
|
namespace Kreuzberg
|
|
{
|
|
/// <summary>E2e tests for category: batch.</summary>
|
|
public class BatchTests
|
|
{
|
|
private static readonly JsonSerializerOptions ConfigOptions = new() { Converters = { new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower) }, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault };
|
|
|
|
[Fact]
|
|
public void Test_BatchBytesInvalidMime()
|
|
{
|
|
// batch_extract_bytes_sync invalid MIME
|
|
var result = KreuzbergLib.BatchExtractBytesSync(new List<BatchBytesItem>() { new BatchBytesItem { Content = new byte[] { (byte)72, (byte)101, (byte)108, (byte)108, (byte)111 }, MimeType = "application/x-nonexistent" } }, null);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Test_BatchExtractBytesHappy()
|
|
{
|
|
// batch_extract_bytes: happy path with mixed inputs
|
|
var result = await KreuzbergLib.BatchExtractBytesAsync(new List<BatchBytesItem>() { new BatchBytesItem { Content = new byte[] { (byte)72, (byte)101, (byte)108, (byte)108, (byte)111, (byte)44, (byte)32, (byte)119, (byte)111, (byte)114, (byte)108, (byte)100, (byte)33 }, MimeType = "text/plain" }, new BatchBytesItem { Content = new byte[] { (byte)60, (byte)104, (byte)116, (byte)109, (byte)108, (byte)62, (byte)60, (byte)98, (byte)111, (byte)100, (byte)121, (byte)62, (byte)84, (byte)101, (byte)115, (byte)116, (byte)60, (byte)47, (byte)98, (byte)111, (byte)100, (byte)121, (byte)62, (byte)60, (byte)47, (byte)104, (byte)116, (byte)109, (byte)108, (byte)62 }, MimeType = "text/html" } }, null);
|
|
Assert.True(result.Count >= 1, "expected at least 1 elements");
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Test_BatchExtractBytesMixedFormat()
|
|
{
|
|
// batch_extract_bytes: handles unsupported MIME gracefully
|
|
var result = await KreuzbergLib.BatchExtractBytesAsync(new List<BatchBytesItem>() { new BatchBytesItem { Content = new byte[] { (byte)80, (byte)68, (byte)70, (byte)32, (byte)112, (byte)108, (byte)97, (byte)99, (byte)101, (byte)104, (byte)111, (byte)108, (byte)100, (byte)101, (byte)114 }, MimeType = "application/x-unknown" } }, null);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void Test_BatchExtractBytesSyncEmptyList()
|
|
{
|
|
// batch_extract_bytes_sync: empty batch
|
|
var result = KreuzbergLib.BatchExtractBytesSync(new List<BatchBytesItem>() { }, null);
|
|
Assert.Equal(0, result.Count);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void Test_BatchExtractBytesSyncInvalidMime()
|
|
{
|
|
// batch_extract_bytes_sync: unsupported MIME
|
|
var result = KreuzbergLib.BatchExtractBytesSync(new List<BatchBytesItem>() { new BatchBytesItem { Content = new byte[] { (byte)100, (byte)97, (byte)116, (byte)97 }, MimeType = "application/x-unknown" } }, null);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Test_BatchFileAsyncBasic()
|
|
{
|
|
// Extract text from multiple files asynchronously
|
|
var result = await KreuzbergLib.BatchExtractFilesAsync(new List<BatchFileItem>() { new BatchFileItem { Path = "pdf/fake_memo.pdf" }, new BatchFileItem { Path = "text/fake_text.txt" } }, null);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Test_BatchFileAsyncNotFound()
|
|
{
|
|
// batch_extract_file async nonexistent
|
|
var result = await KreuzbergLib.BatchExtractFilesAsync(new List<BatchFileItem>() { new BatchFileItem { Path = "/nonexistent/a.pdf" } }, null);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void Test_BatchFileNotFound()
|
|
{
|
|
// batch_extract_file_sync nonexistent
|
|
var result = KreuzbergLib.BatchExtractFilesSync(new List<BatchFileItem>() { new BatchFileItem { Path = "/nonexistent/a.pdf" }, new BatchFileItem { Path = "/nonexistent/b.txt" } }, null);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void Test_BatchFilePartial()
|
|
{
|
|
// batch_extract_file_sync mixed
|
|
var result = KreuzbergLib.BatchExtractFilesSync(new List<BatchFileItem>() { new BatchFileItem { Path = "text/plain.txt" }, new BatchFileItem { Path = "/nonexistent/missing.pdf" } }, null);
|
|
|
|
}
|
|
|
|
[Fact]
|
|
public void Test_BatchFileSyncBasic()
|
|
{
|
|
// Extract text from multiple files synchronously
|
|
var result = KreuzbergLib.BatchExtractFilesSync(new List<BatchFileItem>() { new BatchFileItem { Path = "pdf/fake_memo.pdf" }, new BatchFileItem { Path = "text/fake_text.txt" } }, null);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|