Skip to content

Commit

Permalink
Allowed use of relative paths to input files
Browse files Browse the repository at this point in the history
  • Loading branch information
devedse committed Mar 28, 2017
1 parent 4610b09 commit 26c479e
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 4 deletions.
12 changes: 8 additions & 4 deletions DeveMultiCompressor/CompressorRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ public CompressorRunner(ILogger logger, CompressorFinderFactory compressorFinder

public void GoCompress(CommandLineOptions options)
{
var inputFileFullPath = Path.GetFullPath(options.InputFile);

var outputDir = Path.Combine(FolderHelperMethods.AssemblyDirectory.Value, Constants.OutputDir);
var allCompressors = _compressionFinderFactory.GetCompressors();

var inputFile = new CompressorFileInfo(options.InputFile);
var inputFile = new CompressorFileInfo(inputFileFullPath);

_logger.Write($"Handling input file: '{options.InputFile}'. Generating hash...");
_logger.Write($"Handling input file: '{inputFileFullPath}'. Generating hash...");
var hash = inputFile.GenerateHash();
_logger.Write($"Generated hash of input file: {hash}");

Expand Down Expand Up @@ -105,11 +107,13 @@ public void GoCompress(CommandLineOptions options)

public void GoDecompress(CommandLineOptions options)
{
var lastPathOfOutputDir = Path.GetFileNameWithoutExtension(options.InputFile);
var inputFileFullPath = Path.GetFullPath(options.InputFile);

var lastPathOfOutputDir = Path.GetFileNameWithoutExtension(inputFileFullPath);
var outputDir = Path.Combine(FolderHelperMethods.AssemblyDirectory.Value, Constants.OutputDir, lastPathOfOutputDir);
var allCompressors = _compressionFinderFactory.GetCompressors();

var inputFile = new CompressorFileInfo(options.InputFile);
var inputFile = new CompressorFileInfo(inputFileFullPath);

var inputFileExtension = Path.GetExtension(inputFile.FullPath);
var validDecompressors = allCompressors.Where(t => string.Equals(inputFileExtension, "." + t.CompressorConfig.CompressedFileExtension, StringComparison.OrdinalIgnoreCase) || string.Equals(inputFileExtension, t.CompressorConfig.CompressedFileExtension, StringComparison.OrdinalIgnoreCase)).ToList();
Expand Down
52 changes: 52 additions & 0 deletions DeveMultiCompressorTests/FullFlowTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,58 @@ public void CompressSimpleFile()
}
}

[TestMethod]
public void CompressSimpleFileRelativePath()
{
Constants.CompressorFolder = "TestCompressors";

var previousDirectory = Directory.GetCurrentDirectory();
try
{
var curDir = Path.Combine(FolderHelperMethods.AssemblyDirectory.Value, "TestFiles");
Directory.SetCurrentDirectory(curDir);

var inputFile = "enwik6.txt";
var outputFileLzma2 = Path.Combine(FolderHelperMethods.AssemblyDirectory.Value, "Output", "enwik6_LZMA2.7z");
var outputFileLzma = Path.Combine(FolderHelperMethods.AssemblyDirectory.Value, "Output", "enwik6_LZMA.7z");

using (var container = DryContainer.CreateDryContainer())
{
var runner = container.Resolve<CompressorRunner>();

if (File.Exists(outputFileLzma2))
{
File.Delete(outputFileLzma2);
}
if (File.Exists(outputFileLzma))
{
File.Delete(outputFileLzma);
}

var commandLineOptions = new CommandLineOptions()
{
InputFile = inputFile,
Verify = true
};

runner.GoCompress(commandLineOptions);

Assert.IsTrue(File.Exists(outputFileLzma2));
Assert.IsTrue(File.Exists(outputFileLzma));

var lzma2 = new CompressorFileInfo(outputFileLzma2);
var lzma = new CompressorFileInfo(outputFileLzma);

Assert.IsNotNull(lzma2.GenerateHash());
Assert.IsNotNull(lzma.GenerateHash());
}
}
finally
{
Directory.SetCurrentDirectory(previousDirectory);
}
}

[TestMethod]
public void CompressSimpleFileWithPrecomp()
{
Expand Down

0 comments on commit 26c479e

Please sign in to comment.