public async Task CanGetManifestListProperties()
        {
            // Arrange
            var    client   = CreateClient();
            string tag      = "v1";
            var    artifact = client.GetArtifact(_repositoryName, tag);
            int    helloWorldManifestReferences = 9;

            // Act
            ArtifactManifestProperties properties = await artifact.GetManifestPropertiesAsync();

            // Assert
            Assert.Contains(tag, properties.Tags.ToList());
            Assert.AreEqual(_repositoryName, properties.RepositoryName);
            Assert.GreaterOrEqual(helloWorldManifestReferences, properties.ManifestReferences.Count);

            Assert.IsTrue(properties.ManifestReferences.Any(
                              artifact =>
                              artifact.Architecture == "arm64" &&
                              artifact.OperatingSystem == "linux"));

            Assert.IsTrue(properties.ManifestReferences.Any(
                              artifact =>
                              artifact.Architecture == "amd64" &&
                              artifact.OperatingSystem == "windows"));
        }
        public async Task CanGetManifestProperties()
        {
            // Arrange
            var    client   = CreateClient();
            string tag      = "v1";
            var    artifact = client.GetArtifact(_repositoryName, tag);

            // Act
            ArtifactManifestProperties manifestListProperties = await artifact.GetManifestPropertiesAsync();

            var arm64LinuxImage = manifestListProperties.ManifestReferences.First(
                artifact =>
                artifact.Architecture == "arm64" &&
                artifact.OperatingSystem == "linux");
            var childArtifact = client.GetArtifact(_repositoryName, arm64LinuxImage.Digest);
            ArtifactManifestProperties properties = await childArtifact.GetManifestPropertiesAsync();

            // Assert
            Assert.AreEqual(_repositoryName, properties.RepositoryName);
            Assert.IsNotNull(properties.Digest);
            Assert.AreEqual(ArtifactArchitecture.Arm64, properties.Architecture);
            Assert.AreEqual(ArtifactOperatingSystem.Linux, properties.OperatingSystem);
        }
        public async Task CanSetManifestProperties()
        {
            // Arrange
            var    client   = CreateClient();
            string tag      = "latest";
            var    artifact = client.GetArtifact(_repositoryName, tag);

            ArtifactManifestProperties artifactProperties = await artifact.GetManifestPropertiesAsync();

            ArtifactManifestProperties originalProperties = artifactProperties;

            // Act
            ArtifactManifestProperties properties = await artifact.SetManifestPropertiesAsync(
                new ArtifactManifestProperties()
            {
                CanList   = false,
                CanRead   = false,
                CanWrite  = false,
                CanDelete = false
            });

            // Assert
            Assert.IsFalse(properties.CanList);
            Assert.IsFalse(properties.CanRead);
            Assert.IsFalse(properties.CanWrite);
            Assert.IsFalse(properties.CanDelete);

            ArtifactManifestProperties updatedProperties = await artifact.GetManifestPropertiesAsync();

            Assert.IsFalse(updatedProperties.CanList);
            Assert.IsFalse(updatedProperties.CanRead);
            Assert.IsFalse(updatedProperties.CanWrite);
            Assert.IsFalse(updatedProperties.CanDelete);

            // Cleanup
            await artifact.SetManifestPropertiesAsync(originalProperties);
        }
Esempio n. 4
0
        public async Task CanGetManifests(bool anonymous)
        {
            // Arrange
            var client     = CreateClient(anonymous);
            var repository = client.GetRepository(_repositoryName);

            // Act
            AsyncPageable <ArtifactManifestProperties> manifests = repository.GetManifestsAsync();

            ArtifactManifestProperties latest = null;

            await foreach (ArtifactManifestProperties manifest in manifests)
            {
                if (manifest.Tags.Count > 0 && manifest.Tags.Contains("latest"))
                {
                    latest = manifest;
                    break;
                }
            }

            // Assert
            Assert.IsNotNull(latest);
            Assert.AreEqual(_repositoryName, latest.RepositoryName);
        }