示例#1
0
 static async Task <int> Main(string[] args)
 {
     return(await Parser.Default.ParseArguments(args, typeof(RunPatcherPipelineInstructions))
            .MapResult(
                async(RunPatcherPipelineInstructions settings) =>
     {
         try
         {
             // Locate data folder
             if (string.IsNullOrWhiteSpace(settings.DataFolderPath))
             {
                 settings.DataFolderPath = settings.GameRelease.ToWjGame().MetaData().GameLocation().ToString();
             }
             await RunPatcherPipeline.Run(settings, new ConsoleReporter());
         }
         catch (Exception ex)
         {
             System.Console.Error.WriteLine(ex);
             return -1;
         }
         return 0;
     },
                async _ =>
     {
         return -1;
     }));
 }
        public async Task NullPersistenceModeFallsBackToNone(
            CancellationToken cancel,
            RunPatcherPipeline sut)
        {
            sut.Instructions.PersistenceMode = null;
            await sut.Run(cancel);

            await sut.ExecuteRun.Received(1).Run(
                Arg.Any <IGroupRun[]>(), Arg.Any <CancellationToken>(), Arg.Any <DirectoryPath>(),
                Arg.Any <RunParameters>(), Arg.Any <FilePath?>());
        }
        public async Task PassesGetGroupRunnersToRun(
            IGroupRun[] groupRuns,
            CancellationToken cancel,
            RunPatcherPipeline sut)
        {
            sut.GetGroupRunners.Get(cancel).ReturnsForAnyArgs(groupRuns);
            await sut.Run(cancel);

            await sut.ExecuteRun.Received(1).Run(
                groupRuns, Arg.Any <CancellationToken>(), Arg.Any <DirectoryPath>(),
                Arg.Any <RunParameters>(), Arg.Any <FilePath?>());
        }
        public async Task PassesTypicalSettings(
            CancellationToken cancel,
            RunPatcherPipeline sut)
        {
            sut.Instructions.PersistenceMode = PersistenceMode.None;
            await sut.Run(cancel);

            await sut.ExecuteRun.Received(1).Run(
                Arg.Any <IGroupRun[]>(),
                Arg.Any <CancellationToken>(),
                outputDir: sut.Instructions.OutputDirectory,
                runParameters: new RunParameters(
                    sut.ProfileSettings.TargetLanguage,
                    sut.ProfileSettings.Localize,
                    sut.Instructions.PersistenceMode.Value,
                    sut.Instructions.PersistencePath),
                sourcePath: sut.Instructions.SourcePath);
        }