public void Cleanup()
        {
            BackupCommandLineOptions options = new BackupCommandLineOptions
                                               {BackupPath = "backup", NumberOfDaysToKeepBackups = 30};

            Mock<IFileSystem> mockFileSystem = new Mock<IFileSystem>();
            mockFileSystem.Setup(fs => fs.DirectoryExists(options.BackupPath))
                .Returns(true)
                .Verifiable();

            Mock<IFileSystemInfo> mockTodayFile = new Mock<IFileSystemInfo>();
            mockTodayFile.SetupGet(file => file.CreationTime)
                .Returns(DateTime.Today)
                .Verifiable();
            mockTodayFile.SetupGet(file => file.FullName)
                .Returns(@"c:\path\to\file\today.zip")
                .Verifiable();

            Mock<IFileSystemInfo> mockLastMonthFile = new Mock<IFileSystemInfo>();
            mockLastMonthFile.SetupGet(file => file.CreationTime)
                .Returns(DateTime.Today.AddDays(-35))
                .Verifiable();
            mockLastMonthFile.SetupGet(file => file.FullName)
                .Returns(@"c:\path\to\file\lastMonth.zip")
                .Verifiable();

            mockFileSystem.Setup(fs => fs.GetFiles(options.BackupPath))
                .Returns(new[] {mockTodayFile.Object, mockLastMonthFile.Object})
                .Verifiable();
            mockFileSystem.Setup(fs => fs.DeleteFile(mockLastMonthFile.Object.FullName))
                .Verifiable();

            BackupRunner runner = new BackupRunner(options, mockFileSystem.Object);
            runner.Cleanup();

            mockFileSystem.Verify(fs => fs.DeleteFile(mockTodayFile.Object.FullName), Times.Never());
            mockFileSystem.Verify();
            mockTodayFile.Verify();
            mockLastMonthFile.Verify();
        }
 public void DisplayOptions()
 {
     string[] args = new string[0];
     BackupCommandLineOptions options = new BackupCommandLineOptions();
     Parser.Default.ParseArguments(args, options);
 }