Ejemplo n.º 1
0
        public void ProcessTaskTest_WorksFine()
        {
            // arrange
            var inputFilePath  = "inputPath";
            var outputFilePath = "outputPath";
            var filePaths      = new FilePaths
            {
                InputFilePath  = inputFilePath,
                OutputFilePath = outputFilePath
            };

            var taskNumber            = 1;
            var resetEvent            = new ManualResetEventSlim();
            Func <int, bool> callback = number => true;
            var taskSyncParams        = new TaskSynchronizationParams
            {
                TaskNumber     = taskNumber,
                ResetEvent     = resetEvent,
                CanProceedFunc = callback
            };
            var startPosition = 10;
            var readBytes     = 200;
            var fileChunk     = new FileChunk
            {
                StartPosition = startPosition,
                ReadBytes     = readBytes
            };

            var operation = new Mock <IOperation>();
            var gzipTask  = new GZipTask(filePaths, taskSyncParams, fileChunk, operation.Object);

            var fileChunkRead      = new byte[] { 0, 100, 120, 210, 255 };
            var fileChunkProcessed = new byte[] { 10, 11, 12 };

            // expectations
            fileManager.Setup(_ => _.ReadFileChunk(inputFilePath, startPosition, readBytes))
            .Returns(fileChunkRead);

            operation.Setup(_ => _.ProcessChunk(fileChunkRead))
            .Returns(fileChunkProcessed);

            fileManager.Setup(_ => _.WriteFileChunk(outputFilePath, fileChunkProcessed))
            .Verifiable();

            // act
            target.ProcessTask(gzipTask);

            // assert
            fileManager.VerifyAll();
        }
Ejemplo n.º 2
0
        public void CreateTest_WorksFine()
        {
            // arrange
            var pathParams = new FilePaths();
            var syncParams = new TaskSynchronizationParams();
            var chunk      = new FileChunk();
            var operation  = new Mock <IOperation>();
            var expected   = new GZipTask(pathParams, syncParams, chunk, operation.Object);

            // act
            var actual = target.Create(pathParams, syncParams, chunk, operation.Object);

            // assert
            actual.Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 3
0
        public void NotEmpty_WorksFine_QueueNotEmpty()
        {
            // arrange
            var pathParams = new FilePaths();
            var syncParams = new TaskSynchronizationParams();
            var chunk      = new FileChunk();
            var operation  = new Mock <IOperation>();
            var task       = new GZipTask(pathParams, syncParams, chunk, operation.Object);

            target.Queue.Enqueue(task);

            // act
            var actual = target.NotEmpty();

            // assert
            Assert.True(actual);
        }
Ejemplo n.º 4
0
        public void EnqueueTest_WorksFine()
        {
            // arrange
            var      pathParams = new FilePaths();
            var      syncParams = new TaskSynchronizationParams();
            var      chunk      = new FileChunk();
            var      operation  = new Mock <IOperation>();
            var      task       = new GZipTask(pathParams, syncParams, chunk, operation.Object);
            GZipTask actual;

            // act
            target.Enqueue(task);
            target.Queue.TryDequeue(out actual);

            // assert
            Assert.Equal(task, actual);
        }
        public void CreateTest_WorksFine()
        {
            // arrange
            var taskNumber        = 12;
            var resetEvent        = new ManualResetEventSlim(false);
            Func <int, bool> func = (param) => { return(true); };
            var expected          = new TaskSynchronizationParams
            {
                TaskNumber     = taskNumber,
                ResetEvent     = resetEvent,
                CanProceedFunc = func
            };

            // act
            var actual = target.Create(taskNumber, resetEvent, func);

            // assert
            actual.Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 6
0
        public void CreateTasksTest_WorksFine()
        {
            // arrange
            var inputFilePath = "path";
            var filePaths     = new FilePaths
            {
                InputFilePath = inputFilePath
            };
            var operation = new Mock <IOperation>();

            var chunk = new FileChunk {
                StartPosition = 0, ReadBytes = 10
            };
            var fileChunks = new List <FileChunk> {
                chunk
            };
            var taskNumber = 0;

            var syncParams = new TaskSynchronizationParams
            {
                TaskNumber     = taskNumber,
                ResetEvent     = target.ResetEvent,
                CanProceedFunc = target.CanProceed
            };

            var gZipTask = new GZipTask(filePaths, syncParams, chunk, operation.Object);

            // expectations
            operation.Setup(_ => _.SplitFile(inputFilePath)).Returns(fileChunks);
            taskSyncParamsFactory.Setup(_ => _.Create(taskNumber, target.ResetEvent, target.CanProceed)).Returns(syncParams);
            gzipTaskFactory.Setup(_ => _.Create(filePaths, syncParams, chunk, operation.Object)).Returns(gZipTask);
            taskQueue.Setup(_ => _.Enqueue(gZipTask));

            // act
            target.CreateTasks(filePaths, operation.Object);

            // assert
            operation.VerifyAll();
        }
Ejemplo n.º 7
0
        public void ExecuteTest()
        {
            // arrange
            Action <Exception> exceptionHandler = (ex) => { };
            var filePath   = new FilePaths();
            var syncParams = new TaskSynchronizationParams();
            var chunk      = new FileChunk();
            var operation  = new Mock <IOperation>();
            var gZipTask   = new GZipTask(filePath, syncParams, chunk, operation.Object);

            // expectation
            taskQueue.SetupSequence(_ => _.NotEmpty())
            .Returns(true)
            .Returns(false);
            taskQueue.Setup(_ => _.TryDequeue(out gZipTask));
            taskProcessLogic.Setup(_ => _.ProcessTask(gZipTask));

            // act
            target.Execute(exceptionHandler);

            // assert
            taskProcessLogic.VerifyAll();
        }