Files
octokit.net/Octokit.Tests/Models/ArtifactsTests.cs
2023-09-25 14:16:41 -05:00

99 lines
4.6 KiB
C#

using System;
using Octokit.Internal;
using Xunit;
namespace Octokit.Tests.Models
{
public class ArtifactsTests
{
[Fact]
public void CanBeDeserialized()
{
var json = @"{
""total_count"": 2,
""artifacts"": [
{
""id"": 11,
""node_id"": ""MDg6QXJ0aWZhY3QxMQ=="",
""name"": ""Rails"",
""size_in_bytes"": 556,
""url"": ""https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11"",
""archive_download_url"": ""https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip"",
""expired"": false,
""created_at"": ""2020-01-10T14:59:22Z"",
""expires_at"": ""2020-03-21T14:59:22Z"",
""updated_at"": ""2020-02-21T14:59:22Z"",
""workflow_run"": {
""id"": 2332938,
""repository_id"": 1296269,
""head_repository_id"": 1296269,
""head_branch"": ""main"",
""head_sha"": ""328faa0536e6fef19753d9d91dc96a9931694ce3""
}
},
{
""id"": 13,
""node_id"": ""MDg6QXJ0aWZhY3QxMw=="",
""name"": ""Test output"",
""size_in_bytes"": 453,
""url"": ""https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13"",
""archive_download_url"": ""https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip"",
""expired"": false,
""created_at"": ""2020-01-10T14:59:22Z"",
""expires_at"": ""2020-03-21T14:59:22Z"",
""updated_at"": ""2020-02-21T14:59:22Z"",
""workflow_run"": {
""id"": 2332942,
""repository_id"": 1296269,
""head_repository_id"": 1296269,
""head_branch"": ""main"",
""head_sha"": ""178f4f6090b3fccad4a65b3e83d076a622d59652""
}
}
]
}";
var serializer = new SimpleJsonSerializer();
var payload = serializer.Deserialize<ListArtifactsResponse>(json);
Assert.NotNull(payload);
Assert.Equal(2, payload.TotalCount);
Assert.Equal(2, payload.Artifacts.Count);
Assert.Equal(11, payload.Artifacts[0].Id);
Assert.Equal("MDg6QXJ0aWZhY3QxMQ==", payload.Artifacts[0].NodeId);
Assert.Equal("Rails", payload.Artifacts[0].Name);
Assert.Equal(556, payload.Artifacts[0].SizeInBytes);
Assert.Equal("https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11", payload.Artifacts[0].Url);
Assert.Equal("https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip", payload.Artifacts[0].ArchiveDownloadUrl);
Assert.False(payload.Artifacts[0].Expired);
Assert.Equal(new DateTime(2020, 1, 10, 14, 59, 22, DateTimeKind.Utc), payload.Artifacts[0].CreatedAt);
Assert.Equal(new DateTime(2020, 3, 21, 14, 59, 22, DateTimeKind.Utc), payload.Artifacts[0].ExpiresAt);
Assert.Equal(new DateTime(2020, 2, 21, 14, 59, 22, DateTimeKind.Utc), payload.Artifacts[0].UpdatedAt);
Assert.Equal(2332938, payload.Artifacts[0].WorkflowRun.Id);
Assert.Equal(1296269, payload.Artifacts[0].WorkflowRun.RepositoryId);
Assert.Equal(1296269, payload.Artifacts[0].WorkflowRun.HeadRepositoryId);
Assert.Equal("main", payload.Artifacts[0].WorkflowRun.HeadBranch);
Assert.Equal("328faa0536e6fef19753d9d91dc96a9931694ce3", payload.Artifacts[0].WorkflowRun.HeadSha);
Assert.Equal(13, payload.Artifacts[1].Id);
Assert.Equal("MDg6QXJ0aWZhY3QxMw==", payload.Artifacts[1].NodeId);
Assert.Equal("Test output", payload.Artifacts[1].Name);
Assert.Equal(453, payload.Artifacts[1].SizeInBytes);
Assert.Equal("https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13", payload.Artifacts[1].Url);
Assert.Equal("https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip", payload.Artifacts[1].ArchiveDownloadUrl);
Assert.False(payload.Artifacts[1].Expired);
Assert.Equal(new DateTime(2020, 1, 10, 14, 59, 22, DateTimeKind.Utc), payload.Artifacts[1].CreatedAt);
Assert.Equal(new DateTime(2020, 3, 21, 14, 59, 22, DateTimeKind.Utc), payload.Artifacts[1].ExpiresAt);
Assert.Equal(new DateTime(2020, 2, 21, 14, 59, 22, DateTimeKind.Utc), payload.Artifacts[1].UpdatedAt);
Assert.Equal(2332942, payload.Artifacts[1].WorkflowRun.Id);
Assert.Equal(1296269, payload.Artifacts[1].WorkflowRun.RepositoryId);
Assert.Equal(1296269, payload.Artifacts[1].WorkflowRun.HeadRepositoryId);
Assert.Equal("main", payload.Artifacts[1].WorkflowRun.HeadBranch);
Assert.Equal("178f4f6090b3fccad4a65b3e83d076a622d59652", payload.Artifacts[1].WorkflowRun.HeadSha);
}
}
}