Skip to content
This repository was archived by the owner on Feb 12, 2025. It is now read-only.

Commit 8fcf89e

Browse files
committed
Created tests for FileManager
1 parent 50db668 commit 8fcf89e

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

ManagedCode.OpenAI.Tests/FileTest.cs

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
using System.Diagnostics;
2+
using ManagedCode.OpenAI.Client;
3+
using ManagedCode.OpenAI.Files.Abstractions;
4+
using Xunit;
5+
using Xunit.Abstractions;
6+
7+
namespace ManagedCode.OpenAI.Tests;
8+
9+
10+
11+
public class FileTest
12+
{
13+
private readonly ITestOutputHelper _output;
14+
private readonly IGptClient _client = Mocks.Client();
15+
private readonly IFileManager _fileManager;
16+
17+
18+
private const string fileContent =
19+
@"{""prompt"":""This is a test"", ""completion"":""This is a test""}";
20+
21+
22+
public FileTest(ITestOutputHelper output)
23+
{
24+
_output = output;
25+
_fileManager = _client.FileManager();
26+
}
27+
28+
[Fact]
29+
public async Task UploadFile_Success()
30+
{
31+
const string fileName = "test.txt";
32+
33+
34+
var file = await _fileManager.CreateFileAsync(fileName, fileContent);
35+
36+
Log($"File id: {file.Id}");
37+
38+
Assert.False(string.IsNullOrWhiteSpace(file.Id));
39+
Assert.Equal(fileName, file.Filename);
40+
Assert.Equal(fileContent.Length, file.Bytes);
41+
}
42+
43+
44+
// Needs premium account
45+
// [Fact]
46+
public async Task ContentFile_Success()
47+
{
48+
string fileId = await _fileManager.FileListAsync()
49+
.ContinueWith(t => t.Result[0].Id);
50+
51+
var content = await _fileManager.FileContentAsync(fileId);
52+
53+
Log($"File content: {content}");
54+
55+
Assert.Equal(fileContent, content);
56+
}
57+
58+
[Fact]
59+
public async Task FileList_Success()
60+
{
61+
const string fileName = "test.txt";
62+
63+
var newFile = await _fileManager.CreateFileAsync(fileName, fileContent);
64+
Assert.NotNull(newFile);
65+
66+
var files = await _fileManager.FileListAsync();
67+
Assert.NotEmpty(files);
68+
69+
70+
foreach (var file in files)
71+
{
72+
Log($"File: {file.Id} - {file.Filename}");
73+
}
74+
75+
var lastFiles = files.First(e => e.Id == newFile.Id);
76+
77+
Assert.Equal(newFile.Id, lastFiles.Id);
78+
Assert.Equal(newFile.Filename, lastFiles.Filename);
79+
Assert.Equal(newFile.Bytes, lastFiles.Bytes);
80+
}
81+
82+
[Fact]
83+
public async Task DeleteFile_Success()
84+
{
85+
const string fileName = "test.txt";
86+
87+
var newFile = await _fileManager.CreateFileAsync(fileName, fileContent);
88+
Assert.NotNull(newFile);
89+
90+
//Waiting for file to be deleted
91+
Thread.Sleep(5000);
92+
93+
var deleted = await _fileManager.DeleteFileAsync(newFile);
94+
Log(deleted.ToString());
95+
Assert.True(deleted);
96+
97+
var files = await _fileManager.FileListAsync();
98+
Assert.NotEqual(newFile.Id, files.Last().Id);
99+
}
100+
101+
[Fact]
102+
public async Task FileInfo_Success()
103+
{
104+
const string fileName = "test.txt";
105+
106+
var newFile = await _fileManager.CreateFileAsync(fileName, fileContent);
107+
Assert.NotNull(newFile);
108+
109+
var fileInfo = await _fileManager.FileInfoAsync(newFile.Id);
110+
Assert.NotNull(fileInfo);
111+
112+
Assert.Equal(newFile.Id, fileInfo.Id);
113+
Assert.Equal(newFile.Filename, fileInfo.Filename);
114+
Assert.Equal(newFile.Bytes, fileInfo.Bytes);
115+
}
116+
117+
118+
119+
void Log(string log)
120+
{
121+
_output.WriteLine(log);
122+
}
123+
}

0 commit comments

Comments
 (0)