public void Upgrade_FileValid(string[] current, string[] latest, string[] result) { var actionWorkflow = new ActionWorkflow { Jobs = new Dictionary <string, Job> { { "github", new Job { Steps = current.Select((v, i) => { var step = new Step { Uses = $"own{i}/repo{i}@{v}" }; step.Action.LatestVersion = latest[i]; return(step); }) } }, { "docker", new Job { Steps = current.Select((v, i) => { var step = new Step { Uses = $"docker://d{i}.com:{v}" }; step.Action.LatestVersion = latest[i]; return(step); }) } } } }; var original = @" name: Test jobs: github: steps: "; original += string.Join("\n", current.Select( (v, i) => $" uses: own{i}/repo{i}@{v}")); original += @" docker: steps: "; original += string.Join("\n", current.Select( (v, i) => $" uses: docker://d{i}.com:{v}")); var expected = @" name: Test jobs: github: steps: "; expected += string.Join("\n", result.Select( (v, i) => $" uses: own{i}/repo{i}@{v}")); expected += @" docker: steps: "; expected += string.Join("\n", result.Select( (v, i) => $" uses: docker://d{i}.com:{v}")); const string file = "./test.yml"; File.WriteAllText(file, original); try { var wfi = new WorkflowInfo(file, actionWorkflow); wfi.Upgrade(); Assert.Equal(expected, File.ReadAllText(file)); } finally { File.Delete(file); } }