Dashboard\InteractionFileUploadStoreTests.cs (51)
30Assert.Equal("test.txt", Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
43Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
54Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
58Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
67Assert.Null(fileUploadStore.GetFilePath("nonexistent", InteractionId, InputName));
79Assert.Equal("cert.pem", Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
93Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
108Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("other.bin", InteractionId, InputName));
112var (_, replacementPath) = fileUploadStore.CreateEntry("replacement.bin", InteractionId, InputName);
124var (fileId2, filePath2) = fileUploadStore.CreateEntry("file2.bin", InteractionId, InputName);
133Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("other.bin", InteractionId, InputName));
134Assert.Equal(filePath2, fileUploadStore.GetFilePath(fileId2, InteractionId, InputName));
138var (_, replacementPath) = fileUploadStore.CreateEntry("replacement.bin", InteractionId, InputName);
153Assert.Empty(fileUploadStore.GetCompletedFiles(otherInteractionId, InputName));
158Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
163Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
176Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
181Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
194Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
209Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
223Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
228Assert.Null(fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
243Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
253var (lateFileId, lateFilePath) = fileUploadStore.CreateEntry("late.bin", InteractionId, InputName);
260Assert.Equal(acceptedFilePath, fileUploadStore.GetFilePath(acceptedFileId, InteractionId, InputName));
262Assert.Null(fileUploadStore.GetFilePath(lateFileId, InteractionId, InputName));
279Assert.Equal(filePath, fileUploadStore.GetFilePath(fileId, InteractionId, InputName));
298Assert.Equal(expectedLeafName, Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
316Assert.Equal(originalFileName, Assert.Single(fileUploadStore.GetCompletedFiles(InteractionId, InputName)).Name);
345fileUploadStore.CreateEntry($"file-{i}.txt", InteractionId, InputName);
348var exception = Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("excess.txt", InteractionId, InputName));
350Assert.Equal($"File input '{InputName}' accepts at most {maxFileCount} {fileLabel}.", exception.Message);
359var (fileId, _) = fileUploadStore.CreateEntry("first.txt", InteractionId, InputName);
362var (_, replacementPath) = fileUploadStore.CreateEntry("replacement.txt", InteractionId, InputName);
434var (secondFileId, _) = fileUploadStore.CreateEntry("second.txt", InteractionId, InputName);
437IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId, InputName);
451InteractionFileUploadStore.ValidateFileReferences(value, InputName, files));
453Assert.Equal($"Submitted files for input '{InputName}' do not match the completed uploads.", exception.Message);
482IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId + 1, InputName);
484InteractionFileUploadStore.ValidateFileReferences(FileReferences(fileId), InputName, files));
486Assert.Equal($"Submitted files for input '{InputName}' do not match the completed uploads.", exception.Message);
496IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId, InputName);
498InteractionFileUploadStore.ValidateFileReferences(FileReferences(fileId), InputName, files));
500Assert.Equal($"Submitted files for input '{InputName}' do not match the completed uploads.", exception.Message);
518Assert.Null(fileUploadStore.GetFilePath("anything", InteractionId, InputName));
529var exception = Assert.Throws<InvalidOperationException>(() => fileUploadStore.CreateEntry("temp.bin", InteractionId, InputName));
537private static (string FileId, string FilePath) CreateEntry(InteractionFileUploadStore fileUploadStore, string fileName, string inputName = InputName)
546string inputName = InputName,
557IReadOnlyList<InteractionFileUpload>? files = fileUploadStore.GetCompletedFiles(InteractionId, InputName);
558files = InteractionFileUploadStore.ValidateFileReferences(jsonValue, InputName, files);
559fileUploadStore.MarkFilesAccepted(InteractionId, InputName, files!.Select(file => file.Id).ToArray());