コード例 #1
0
        public void CreateWithNoArguments()
        {
            // empty argument list
            PackageCreateArguments args = new PackageCreateArguments();

            PackageCreateResult result = PackageCreate.CreatePackage(args);

            Assert.Equal(PackageCreateErrorTypes.MissingValue, result.ErrorType);
            Assert.Equal("Files collection is empty.", result.PublicError);
        }
コード例 #2
0
        public void CreateWithNoName()
        {
            PackageCreateArguments args = new PackageCreateArguments();
            Stream fileStream           = StreamsHelper.StreamFromString("some text");

            args.Files.Add(new PackageCreateItem(fileStream, "folder/file"));


            PackageCreateResult result = PackageCreate.CreatePackage(args);

            Assert.Equal(PackageCreateErrorTypes.MissingValue, result.ErrorType);
            Assert.Equal("Id is required.", result.PublicError);
        }
コード例 #3
0
        public void CreateWithEmptyFiles()
        {
            PackageCreateArguments args = new PackageCreateArguments
            {
                // empty files list
                Files = new List <PackageCreateItem>()
            };

            PackageCreateResult result = PackageCreate.CreatePackage(args);

            Assert.Equal(PackageCreateErrorTypes.MissingValue, result.ErrorType);
            Assert.Equal("Files collection is empty.", result.PublicError);
        }
コード例 #4
0
        public void CreateBasic()
        {
            List <PackageCreateItem> files = new List <PackageCreateItem>();
            string fileContent             = "some file content";
            int    filesToAdd = 10;
            string packageId  = "my package";

            for (int i = 0; i < filesToAdd; i++)
            {
                Stream fileStream = StreamsHelper.StreamFromString(fileContent);
                files.Add(new PackageCreateItem(fileStream, $"folder{i}/file{i}"));
            }

            PackageCreateArguments package = new PackageCreateArguments
            {
                Id    = packageId,
                Files = files
            };

            PackageCreateResult result = PackageCreate.CreatePackage(package);

            Assert.True(result.Success);
            Assert.Null(result.PublicError);
            Assert.NotEmpty(result.PackageHash);
            Assert.Null(result.ErrorType);

            // check that package can be listed
            IEnumerable <string> packageIds = IndexReader.GetAllPackageIds();

            Assert.Contains(packageId, packageIds);
            Assert.Single(packageIds);

            // check that package can be retrieved as manifest
            Manifest manifest = IndexReader.GetManifest(packageId);

            Assert.NotNull(manifest);
            Assert.Equal(manifest.Files.Count, filesToAdd);

            // check that a file can be retrieved directly using manifest id
            GetFileResponse response = IndexReader.GetFile(manifest.Files[0].Id);

            using (StreamReader reader = new StreamReader(response.Content)) {
                string retrievedContent = reader.ReadToEnd();
                Assert.Equal(retrievedContent, fileContent);
            }

            // ensure that workspace has been cleaned up
            Assert.Empty(Directory.GetDirectories(base.Settings.TempPath));
        }
コード例 #5
0
        public void CreateWithAutoArchive()
        {
            this.Settings.AutoCreateArchiveOnPackageCreate = true;
            Stream fileStream = StreamsHelper.StreamFromString("some text");

            PackageCreateArguments package = new PackageCreateArguments
            {
                Id    = "mypackage",
                Files = new List <PackageCreateItem>()
                {
                    new PackageCreateItem(fileStream, "folder/file")
                }
            };

            PackageCreate.CreatePackage(package);
            Assert.True(File.Exists(Path.Join(Settings.ArchivePath, "mypackage.zip")));
        }
コード例 #6
0
        public void CreateArchiveWithTooManyFiles()
        {
            string packageId  = "my package";
            Stream fileStream = StreamsHelper.StreamFromString("some text");

            PackageCreateArguments package = new PackageCreateArguments
            {
                Id        = packageId,
                IsArchive = true,
                Files     = new List <PackageCreateItem>()
                {
                    new PackageCreateItem(fileStream, "folder/file"),
                    new PackageCreateItem(fileStream, "folder/file")
                }
            };

            PackageCreateResult result = PackageCreate.CreatePackage(package);

            Assert.False(result.Success);
            Assert.Equal(PackageCreateErrorTypes.InvalidFileCount, result.ErrorType);
        }
コード例 #7
0
        public void CreateDuplicatePackage()
        {
            string packageId  = "my package";
            Stream fileStream = StreamsHelper.StreamFromString("some text");

            PackageCreateArguments package = new PackageCreateArguments
            {
                Id    = packageId,
                Files = new List <PackageCreateItem>()
                {
                    new PackageCreateItem(fileStream, "folder/file")
                }
            };

            PackageCreateResult result = PackageCreate.CreatePackage(package);

            Assert.True(result.Success);

            // attempt to create package with same name
            result = PackageCreate.CreatePackage(package);
            Assert.False(result.Success);
            Assert.Equal(PackageCreateErrorTypes.PackageExists, result.ErrorType);
        }