static async Task Main(string[] args) { string authToken = args[0]; long repoId = long.Parse(args[1]); int pullRequestId = int.Parse(args[2]); string format = args[3]; if (!Enum.IsDefined(typeof(OutputFormat), format)) { throw new Exception($"Format must be one of 'space_delimited', 'csv', or 'json', got '{format}'."); } OutputFormat outputFormat = (OutputFormat)Enum.Parse(typeof(OutputFormat), format); GitHubClient gitClient = new GitHubClient(new ProductHeaderValue("Microsoft.IoT.ModelsRepository.Validator")); gitClient.Credentials = new Credentials(authToken); IModelValidationService modelValidationService = new ModelValidationService(gitClient); RepositoryUpdatesFormatted result = await modelValidationService.GetRepositoryUpdates(repoId, pullRequestId, outputFormat); Console.WriteLine($"::set-output name=all::{result.FilesAllFormatted}"); Console.WriteLine($"::set-output name=added::{result.FilesAddedFormatted}"); Console.WriteLine($"::set-output name=modified::{result.FilesModifiedFormatted}"); Console.WriteLine($"::set-output name=removed::{result.FilesRemovedFormatted}"); Console.WriteLine($"::set-output name=renamed::{result.FilesRenamedFormatted}"); Console.WriteLine($"::set-output name=added_modified::{result.FilesAddedModifiedFormatted}"); }
private void AssertRepoUpdates(RepositoryUpdatesFormatted expectedRepoUpdates, RepositoryUpdatesFormatted actualRepoUpdates) { Assert.NotNull(actualRepoUpdates); Assert.Equal(expectedRepoUpdates.FilesAddedFormatted, actualRepoUpdates.FilesAddedFormatted); Assert.Equal(expectedRepoUpdates.FilesModifiedFormatted, actualRepoUpdates.FilesModifiedFormatted); Assert.Equal(expectedRepoUpdates.FilesRemovedFormatted, actualRepoUpdates.FilesRemovedFormatted); Assert.Equal(expectedRepoUpdates.FilesRenamedFormatted, actualRepoUpdates.FilesRenamedFormatted); Assert.Equal(expectedRepoUpdates.FilesAddedModifiedFormatted, actualRepoUpdates.FilesAddedModifiedFormatted); Assert.Equal(expectedRepoUpdates.FilesAllFormatted, actualRepoUpdates.FilesAllFormatted); }
public async void GetRepositoryUpdates_ResultsFormatted_Json() { GitClientMoq.Setup(client => client.PullRequest.Files(RepoId, PullRequestId)).ReturnsAsync(ModelRepositoryFileUpdates); RepositoryUpdatesFormatted expectedRepoUpdates = new RepositoryUpdatesFormatted { FilesAddedFormatted = "[\"dtmi/test_company_1/test_device_1_interface_1.json\",\"dtmi/test_company_1/test_device_2_interface_2.json\"]", FilesModifiedFormatted = "[\"dtmi/test_company_1/test_device_1_interface_2.json\",\"dtmi/test_company_1/test_device_3_interface_2.json\"]", FilesRemovedFormatted = "[\"dtmi/test_company_1/test_device_2_interface_1.json\"]", FilesRenamedFormatted = "[\"dtmi/test_company_1/test_device_3_interface_1.json\"]", FilesAddedModifiedFormatted = "[\"dtmi/test_company_1/test_device_1_interface_1.json\",\"dtmi/test_company_1/test_device_1_interface_2.json\",\"dtmi/test_company_1/test_device_2_interface_2.json\",\"dtmi/test_company_1/test_device_3_interface_2.json\"]", FilesAllFormatted = "[\"dtmi/test_company_1/test_device_1_interface_1.json\",\"dtmi/test_company_1/test_device_1_interface_2.json\",\"dtmi/test_company_1/test_device_2_interface_1.json\",\"dtmi/test_company_1/test_device_2_interface_2.json\",\"dtmi/test_company_1/test_device_3_interface_1.json\",\"dtmi/test_company_1/test_device_3_interface_2.json\",\"dtmi/test_company_1/test_device_3_interface_3.json\"]" }; RepositoryUpdatesFormatted actualRepoUpdates = await ModelValidationService.GetRepositoryUpdates(RepoId, PullRequestId, OutputFormat.json); AssertRepoUpdates(expectedRepoUpdates, actualRepoUpdates); }
public async void GetRepositoryUpdates_HandlesEmptyPullRequestFiles() { GitClientMoq.Setup(client => client.PullRequest.Files(RepoId, PullRequestId)).ReturnsAsync(new List <PullRequestFile>()); RepositoryUpdatesFormatted expectedRepoUpdates = new RepositoryUpdatesFormatted { FilesAddedFormatted = "", FilesModifiedFormatted = "", FilesRemovedFormatted = "", FilesRenamedFormatted = "", FilesAddedModifiedFormatted = "", FilesAllFormatted = "" }; RepositoryUpdatesFormatted actualRepoUpdates = await ModelValidationService.GetRepositoryUpdates(RepoId, PullRequestId, OutputFormat.space_delimited); AssertRepoUpdates(expectedRepoUpdates, actualRepoUpdates); }