예제 #1
0
        public void KnownApproxFile_IsProbablyTrackFile_TopOfRange()
        {
            var status = KnownFiles.IsKnownFile(24000);

            status.IsKnown.Should().Be(KnownState.Probable);
            status.Description.Should().Be("an F1GP Track File?");
        }
예제 #2
0
        public void KnownFile_ReturnsTrue()
        {
            var status = KnownFiles.IsKnownFile(16924);

            status.IsKnown.Should().Be(KnownState.Exact);
            status.Description.Should().Contain("Phoenix");
        }
예제 #3
0
        public void Run(Options options)
        {
            if (options.UnrecognizedInput)
            {
                _console.WriteUnrecognizedInputMessage();
                return;
            }

            if (options.DisplayHelp)
            {
                _console.WriteHelpMessage();
                return;
            }

            if (string.IsNullOrWhiteSpace(options.FileName))
            {
                _console.WriteFileArgumentMissingMessage();
                return;
            }

            if (!_fileSystem.FileExists(options.FileName))
            {
                _console.WriteFileDoesNotExistMessage(options.FileName);
                return;
            }

            var fileLength = _fileSystem.GetFileLength(options.FileName);
            var file       = KnownFiles.IsKnownFile(fileLength);

            if (file.IsKnown == KnownState.Exact)
            {
                _console.WriteIdentifiedFileMessage(file.Description);
            }
            else if (file.IsKnown == KnownState.Probable)
            {
                _console.WriteProbableFileMessage(file.Description);
            }
            else
            {
                _console.WriteUnknownFileMessage();

                if (!ShouldProceed(options.Force))
                {
                    _console.WriteDidNotProceedWithUnknownFileMessage();
                    return;
                }
            }

            _checksumCalculator.UpdateChecksum(options.FileName);

            _console.WriteSuccessMessage();

            if (options.Pause)
            {
                _console.WritePauseMessage();
            }
        }
예제 #4
0
        public void UnknownFile_ReturnsFalse()
        {
            var status = KnownFiles.IsKnownFile(123456);

            status.IsKnown.Should().Be(KnownState.Unknown);
        }