Dashboard\InteractionFileUploadStoreTests.cs (51)
28Assert.Equal("test.txt", Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
41Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
52Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
56Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
65Assert.Null(fileUploadStore.GetFilePath("nonexistent", InteractionId, InputName));
77Assert.Equal("cert.pem", Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
91Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
106Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("other.bin", InteractionId, InputName));
110var (_, replacementPath) = fileUploadStore.CreateEntry("replacement.bin", InteractionId, InputName);
122var (fileId2, filePath2) = fileUploadStore.CreateEntry("file2.bin", InteractionId, InputName);
131Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("other.bin", InteractionId, InputName));
132Assert.Equal(filePath2, fileUploadStore.GetFilePath(fileId2, InteractionId, InputName));
136var (_, replacementPath) = fileUploadStore.CreateEntry("replacement.bin", InteractionId, InputName);
151Assert.Empty(fileUploadStore.GetCompletedFiles(otherInteractionId, InputName));
156Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
161Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
174Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
179Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
192Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
207Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
221Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
226Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
241Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
251var (lateFileId, lateFilePath) = fileUploadStore.CreateEntry("late.bin", InteractionId, InputName);
258Assert.Equal(acceptedFilePath, fileUploadStore.GetFilePath(acceptedFileId, InteractionId, InputName));
260Assert.Null(fileUploadStore.GetFilePath(lateFileId, InteractionId, InputName));
277Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
296Assert.Equal(expectedLeafName, Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
314Assert.Equal(originalFileName, Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
343fileUploadStore.CreateEntry($"file-{i}.txt", InteractionId, InputName);
346var exception = Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("excess.txt", InteractionId, InputName));
348Assert.Equal($"File input '{InputName}' accepts at most {maxFileCount} {fileLabel}.", exception.Message);
357var (fileId, _) = fileUploadStore.CreateEntry("first.txt", InteractionId, InputName);
360var (_, replacementPath) = fileUploadStore.CreateEntry("replacement.txt", InteractionId, InputName);
432var (secondFileId, _) = fileUploadStore.CreateEntry("second.txt", InteractionId, InputName);
435IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId, InputName);
449InteractionFileUploadStore.ValidateFileReferences(value, InputName, files));
451Assert.Equal($"Submitted files for input '{InputName}' do not match the completed uploads.", exception.Message);
480IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId + 1, InputName);
482InteractionFileUploadStore.ValidateFileReferences(FileReferences(fileId), InputName, files));
484Assert.Equal($"Submitted files for input '{InputName}' do not match the completed uploads.", exception.Message);
494IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId, InputName);
496InteractionFileUploadStore.ValidateFileReferences(FileReferences(fileId), InputName, files));
498Assert.Equal($"Submitted files for input '{InputName}' do not match the completed uploads.", exception.Message);
516Assert.Null(fileUploadStore.GetFilePath("anything", InteractionId, InputName));
527var exception = Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("temp.bin", InteractionId, InputName));
535private static (string FileId, string FilePath) CreateEntry(InteractionFileUploadStore fileUploadStore, string fileName, string inputName = InputName)
544string inputName = InputName,
555IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId, InputName);
556files = InteractionFileUploadStore.ValidateFileReferences(jsonValue, InputName, files);
557fileUploadStore.MarkFilesAccepted(InteractionId, InputName, files!.Select(file => file.Id).ToArray());