示例#1
0
        public void ShouldDecompress()
        {
            // Arrange

            var file = new byte[16 + 10 + 16 + 2]
            {
                /* compressedSize */ 10, 0, 0, 0, /*  source.offset */ 0, 0, 0, 0, 0, 0, 0, 0, /* source.size */ 10, 0, 0, 0,
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                /* compressedSize */ 2, 0, 0, 0, /* source.offset */ 10, 0, 0, 0, 0, 0, 0, 0, /* source.size */ 2, 0, 0, 0,
                11, 12
            };
            var reader = new InmemoryReader(file);

            var decompressor = new PassThroughDecompressor();

            var output = new byte[12];
            var writer = new InmemoryWriter(output);

            var fileDecompressor = new FileDecompressor(
                new DecompressionInfoGenerator(reader),
                reader,
                decompressor,
                writer);

            // Act

            fileDecompressor.Execute();

            // Assert

            Assert.Equal(Enumerable.Range(1, 12).Select(i => (byte)i), output);
        }
        static void Main(string[] args)
        {
            //Parse program arguments
            var parser = new TransitDataBackend();
            parser.ParseArguments(args);

            TransitDataBackend.Logging("Starting Program", true);

            if (downloadRemoteFiles)
            {
                TransitDataBackend.Logging("Starting Download Manager", true);
                var manager = new FtpDownloadManager();
                manager.FtpDownloader(detailedLogging);

                var decompressor = new FileDecompressor();
                TransitDataBackend.Logging("Starting Decompression", true);

                string filePath = @"D:\home\site\wwwroot\google_transit\google_transit.zip";
                string extractPath = @"D:\home\site\wwwroot\google_transit\";
                decompressor.DecompressFile(filePath, extractPath, detailedLogging);
            }
            //not needed as we are using bulk upload
            //TransitDataBackend.Logging("Starting SQL Insert", true);
            //var dataloader = new SqlInsert();
            //dataloader.LoadDataIntoRouteTable(detailedLogging);
            //truncate the destination table before upload

            TransitDataBackend.Logging("Starting Data Uploader", true);
            //now upload
            var dataUploader = new DataUploader(detailedLogging);
            dataUploader.LoadData(detailedLogging, fileToUpload, numberOfUploadTries);
        }