/// <summary>
        /// Return the list of <see cref="PackageToPrepare"/> in the ordered form
        /// for which we want to run all the tasks sequentially
        /// </summary>
        /// <returns>Ordered list of tasks to run for <see cref="PackageToPrepare"/></returns>
        private async Task <List <PackageToPrepare> > InitializePackagesAsync(PackageType packageType, ITestOutputHelper logger)
        {
            var                     id = GetPackageId(packageType);
            LicenseMetadata         licenseMetadata;
            PackageToPrepare        packageToPrepare;
            List <PackageToPrepare> packagesToPrepare = new List <PackageToPrepare>();

            switch (packageType)
            {
            case PackageType.SemVer2DueToSemVer2Dep:
                packageToPrepare = new PackageToPrepare(Package.Create(new PackageCreationContext
                {
                    Id = id,
                    NormalizedVersion = "1.0.0-beta",
                    FullVersion       = "1.0.0-beta",
                    DependencyGroups  = new[]
                    {
                        new PackageDependencyGroup(
                            TestData.TargetFramework,
                            new[]
                        {
                            new PackageDependency(
                                GetPackageId(PackageType.SemVer2Prerel),
                                VersionRange.Parse(SemVer2PrerelVersion))
                        })
                    },
                    Properties = new PackageProperties(packageType)
                }));
                break;

            case PackageType.SemVer2StableMetadataUnlisted:
                packageToPrepare = new PackageToPrepare(
                    Package.Create(packageType, id, "1.0.0", "1.0.0+metadata"),
                    unlist: true);
                break;

            case PackageType.SemVer2StableMetadata:
                packageToPrepare = new PackageToPrepare(Package.Create(packageType, id, "1.0.0", "1.0.0+metadata"));
                break;

            case PackageType.SemVer2PrerelUnlisted:
                packageToPrepare = new PackageToPrepare(
                    Package.Create(packageType, id, "1.0.0-alpha.1"),
                    unlist: true);
                break;

            case PackageType.SemVer2Prerel:
                packageToPrepare = new PackageToPrepare(Package.Create(packageType, id, SemVer2PrerelVersion));
                break;

            case PackageType.SemVer2PrerelRelisted:
                packageToPrepare = new PackageToPrepare(Package.Create(packageType, id, "1.0.0-alpha.1"),
                                                        unlist: true);
                break;

            case PackageType.SemVer1StableUnlisted:
                packageToPrepare = new PackageToPrepare(
                    Package.Create(packageType, id, "1.0.0"),
                    unlist: true);
                break;

            case PackageType.Signed:
                packageToPrepare = new PackageToPrepare(Package.SignedPackage());
                break;

            case PackageType.SymbolsPackage:
                return(await PrepareSymbolsPackageAsync(id, "1.0.0", logger));

            case PackageType.LicenseExpression:
                licenseMetadata  = new LicenseMetadata(LicenseType.Expression, "MIT", null, null, LicenseMetadata.EmptyVersion);
                packageToPrepare = new PackageToPrepare(Package.Create(new PackageCreationContext
                {
                    Id = id,
                    NormalizedVersion = "1.0.0",
                    FullVersion       = "1.0.0",
                    Properties        = new PackageProperties(packageType, licenseMetadata)
                }));
                break;

            case PackageType.LicenseFile:
                var licenseFilePath    = "license.txt";
                var licenseFileContent = "It's a license";
                licenseMetadata  = new LicenseMetadata(LicenseType.File, licenseFilePath, null, null, LicenseMetadata.EmptyVersion);
                packageToPrepare = new PackageToPrepare(Package.Create(new PackageCreationContext
                {
                    Id = id,
                    NormalizedVersion = "1.0.0",
                    FullVersion       = "1.0.0",
                    Properties        = new PackageProperties(packageType, licenseMetadata, licenseFileContent),
                    Files             = new List <PhysicalPackageFile> {
                        new PhysicalPackageFile(new MemoryStream(Encoding.UTF8.GetBytes(licenseFileContent)))
                        {
                            TargetPath = licenseFilePath
                        }
                    }
                }));
                break;

            case PackageType.LicenseUrl:
                var licenseUrl = new Uri("https://testLicenseUrl");
                packageToPrepare = new PackageToPrepare(Package.Create(new PackageCreationContext
                {
                    Id = id,
                    NormalizedVersion = "1.0.0",
                    FullVersion       = "1.0.0",
                    Properties        = new PackageProperties(packageType, licenseUrl: licenseUrl)
                }));
                break;

            case PackageType.EmbeddedIconJpeg:
                packageToPrepare = new PackageToPrepare(Package.Create(new PackageCreationContext
                {
                    Id = id,
                    NormalizedVersion = "1.0.0",
                    FullVersion       = "1.0.0",
                    Properties        = new PackageProperties(packageType)
                    {
                        EmbeddedIconFilename = "icon.jpg"
                    },
                }));
                break;

            case PackageType.EmbeddedIconPng:
                packageToPrepare = new PackageToPrepare(Package.Create(new PackageCreationContext
                {
                    Id = id,
                    NormalizedVersion = "1.0.0",
                    FullVersion       = "1.0.0",
                    Properties        = new PackageProperties(packageType)
                    {
                        EmbeddedIconFilename = "icon.png"
                    },
                }));
                break;

            case PackageType.Deprecated:
                packageToPrepare = new PackageToPrepare(
                    Package.Create(packageType, id, "1.0.0"),
                    PackageDeprecationContext.Default);
                break;

            case PackageType.DotnetTool:
                return(await PrepareDotnetToolPackageAsync(id, "1.0.0", logger));

            case PackageType.SemVer1Stable:
            case PackageType.FullValidation:
            default:
                packageToPrepare = new PackageToPrepare(Package.Create(packageType, id, "1.0.0"));
                break;
            }

            packagesToPrepare.Add(packageToPrepare);
            return(packagesToPrepare);
        }
Esempio n. 2
0
        /// <summary>
        /// Return the list of <see cref="PackageToPrepare"/> in the ordered form
        /// for which we want to run all the tasks sequentially
        /// </summary>
        /// <returns>Ordered list of tasks to run for <see cref="PackageToPrepare"/></returns>
        private async Task <List <PackageToPrepare> > InitializePackagesAsync(PackageType packageType, ITestOutputHelper logger)
        {
            var id = GetPackageId(packageType);
            PackageToPrepare        packageToPrepare;
            List <PackageToPrepare> packagesToPrepare = new List <PackageToPrepare>();

            switch (packageType)
            {
            case PackageType.SemVer2DueToSemVer2Dep:
                packageToPrepare = new PackageToPrepare(Package.Create(new PackageCreationContext
                {
                    Id = id,
                    NormalizedVersion = "1.0.0-beta",
                    FullVersion       = "1.0.0-beta",
                    DependencyGroups  = new[]
                    {
                        new PackageDependencyGroup(
                            TestData.TargetFramework,
                            new[]
                        {
                            new PackageDependency(
                                GetPackageId(PackageType.SemVer2Prerel),
                                VersionRange.Parse(SemVer2PrerelVersion))
                        })
                    }
                }));
                break;

            case PackageType.SemVer2StableMetadataUnlisted:
                packageToPrepare = new PackageToPrepare(
                    Package.Create(id, "1.0.0", "1.0.0+metadata"),
                    unlist: true);
                break;

            case PackageType.SemVer2StableMetadata:
                packageToPrepare = new PackageToPrepare(Package.Create(id, "1.0.0", "1.0.0+metadata"));
                break;

            case PackageType.SemVer2PrerelUnlisted:
                packageToPrepare = new PackageToPrepare(
                    Package.Create(id, "1.0.0-alpha.1"),
                    unlist: true);
                break;

            case PackageType.SemVer2Prerel:
                packageToPrepare = new PackageToPrepare(Package.Create(id, SemVer2PrerelVersion));
                break;

            case PackageType.SemVer2PrerelRelisted:
                packageToPrepare = new PackageToPrepare(Package.Create(id, "1.0.0-alpha.1"),
                                                        unlist: true);
                break;

            case PackageType.SemVer1StableUnlisted:
                packageToPrepare = new PackageToPrepare(
                    Package.Create(id, "1.0.0"),
                    unlist: true);
                break;

            case PackageType.Signed:
                packageToPrepare = new PackageToPrepare(Package.SignedPackage());
                break;

            case PackageType.SymbolsPackage:
                return(await PrepareSymbolsPackageAsync(id, "1.0.0", logger));

            case PackageType.SemVer1Stable:
            case PackageType.FullValidation:
            default:
                packageToPrepare = new PackageToPrepare(Package.Create(id, "1.0.0"));
                break;
            }

            packagesToPrepare.Add(packageToPrepare);
            return(packagesToPrepare);
        }