static IBlockCompressor SetupBlockCompressor( ProducerConsumer <IByteChunk> readerToProcessorsChain, IBlockCompressorUowOutputFactory outputFactory) { var blockCompressorUowFactory = new BlockCompressorUowFactory(readerToProcessorsChain, outputFactory, new GzipStream()); var starter = new BlockCompressorStarter(new ThreadingImpl(), blockCompressorUowFactory); return(new BlockCompressor(CompressThreadsCount, starter)); }
public void BlockCompressorStraterShouldWorkAsExpected() { // Arrange var compressAction = new Action(() => { }); var uow = MockRepository.GenerateMock <IBlockCompressorUow>(); uow.Expect(t => t.CompressAction(JobType.Compress)).Repeat.Once().Return(compressAction); var uowFactory = MockRepository.GenerateMock <IBlockCompressorUowFactory>(); uowFactory.Expect(t => t.Create()).Repeat.Once().Return(uow); var threading = MockRepository.GenerateMock <IThreading>(); threading.Expect(t => t.ThreadStart(compressAction)).Repeat.Once(); var starter = new BlockCompressorStarter(threading, uowFactory); // Act starter.StartCompress(JobType.Compress); // Assert threading.VerifyAllExpectations(); uowFactory.VerifyAllExpectations(); uow.VerifyAllExpectations(); }