private int Disassemble(DisassembleOptions options) { string path = Path.GetFullPath(options.FileName); if (!File.Exists(path)) { PrintError("File does not exist: " + path); return(2); } FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read); AcsFormat format = AcsFormatIdentifier.IdentifyFormat(stream); if (format == AcsFormat.NotAcs) { stream.Dispose(); PrintError(path + " is not an ACS file!"); return(3); } Console.WriteLine("Detected format: " + format); string outputPath = Path.GetFullPath(options.OutputFile); if (File.Exists(outputPath)) { File.Delete(outputPath); } FileStream outputStream = new FileStream(outputPath, FileMode.OpenOrCreate, FileAccess.Write); AcsFile file = new AcsFile(stream, format); file.Disassemble(outputStream); outputStream.Dispose(); stream.Dispose(); return(0); }
public void Dasm_command_tests(string name) { // Arrange var content = _testSource.BinFiles[name]; var expected = _testSource.BinVrilFiles[name]; var options = new DisassembleOptions() { FilePath = name }; var reader = MockFactory.NewFileReader(content); var writer = MockFactory.NewFileWriter(); var configuration = MockFactory.NewConfiguration(); // Act DisassembleCommand.Run(options, reader, writer, configuration); // Assert var file = Assert.Single(writer.Files.Values); var actual = Assert.IsType <string>(file); Assert.Equal(expected, actual); }