Ejemplo n.º 1
0
        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);
            }
        }