public void ProcessFile_PoolOverflow() { var fileProcessor = new FileProcessor(new TestFileFactory(), 2); var fileId1 = fileProcessor.AddFile(null); var fileId2 = fileProcessor.AddFile(null); var fileId3 = fileProcessor.AddFile(null); fileProcessor.ProcessFile(fileId1); fileProcessor.ProcessFile(fileId2); fileProcessor.ProcessFile(fileId3); // Первые 2 файла должны обрабатываться, а третий зависнуть в очереди, так как пул всего на 2. Assert.IsTrue(TestFile.ProcessFilesId.Contains(fileId1)); Assert.IsTrue(TestFile.ProcessFilesId.Contains(fileId2)); Assert.IsFalse(TestFile.ProcessFilesId.Contains(fileId3)); }
public void CancelProcess_NextFileToProcess() { var fileProcessor = new FileProcessor(new TestFileFactory(), 2); var fileId1 = fileProcessor.AddFile(null); var fileId2 = fileProcessor.AddFile(null); var fileId3 = fileProcessor.AddFile(null); fileProcessor.ProcessFile(fileId1); fileProcessor.ProcessFile(fileId2); fileProcessor.ProcessFile(fileId3); fileProcessor.CancelProcess(fileId2); Assert.IsTrue(TestFile.CanceledProcessFilesId.Contains(fileId2)); Assert.IsTrue(TestFile.ProcessFilesId.Contains(fileId3), "После отмены обработки второго файла, в обработку должен поступить третий."); }