private void describe_CreateFromDirectory()
        {
            before = () =>
            {
                File.WriteAllText(Path.Combine(tmpDir, "a_file.txt"), "Some exciting text");
                Directory.CreateDirectory(Path.Combine(tmpDir, "a dir"));
                File.WriteAllText(Path.Combine(tmpDir, "a dir", "another_file.txt"), "Some spacey text");
            };

            context["requesting a single file"] = () =>
            {
                before = () =>
                {
                    tarStream = tarStreamService.WriteTarToStream(Path.Combine(tmpDir, "a_file.txt"));
                };

                it["returns a stream with a single requested file"] = () =>
                {
                    using (IReader tar = ReaderFactory.Open(tarStream))
                    {
                        tar.MoveToNextEntry().should_be_true();
                        tar.Entry.Key.should_be("a_file.txt");

                        tar.MoveToNextEntry().should_be_false();
                    }
                };
            };

            context["requesting a directory"] = () =>
            {
                before = () =>
                {
                    tarStream = tarStreamService.WriteTarToStream(tmpDir);
                };

                it["creates the tgz stream"] = () =>
                {
                    ReaderFactory.Open(tarStream).should_not_be_null();
                };

                it["returns a stream with the files inside"] = () =>
                {
                    using (var tar = ArchiveFactory.Open(tarStream))
                    {
                        var entries = tar.Entries.Select(x => x.Key).ToList();
                        entries.should_contain("./a_file.txt");
                        entries.should_contain("./a dir/another_file.txt");
                    }
                };

                it["has content in the files"] = () =>
                {
                    using (var tar = ArchiveFactory.Open(tarStream))
                    {
                        var entries = tar.Entries.ToList();
                        entries.Select(x => x.Key).should_contain("./a_file.txt");
                        var aFile = entries.First(x => x.Key == "./a_file.txt");
                        GetString(aFile.OpenEntryStream(), aFile.Size).should_be("Some exciting text");
                    }
                };
            };
        }
Beispiel #2
0
        private void describe_CreateFromDirectory()
        {
            before = () =>
            {
                File.WriteAllText(Path.Combine(tmpDir, "a_file.txt"), "Some exciting text");
                Directory.CreateDirectory(Path.Combine(tmpDir, "a_dir"));
                File.WriteAllText(Path.Combine(tmpDir, "a_dir", "another_file.txt"), "Some different text");
            };

            context["requesting a single file"] = () =>
            {
                before = () =>
                {
                    tarStream = tarStreamService.WriteTarToStream(Path.Combine(tmpDir, "a_file.txt"));
                };

                it["returns a stream with a single requested file"] = () =>
                {
                    using (IReader tar = ReaderFactory.Open(tarStream))
                    {
                        tar.MoveToNextEntry().should_be_true();
                        tar.Entry.Key.should_be("a_file.txt");

                        tar.MoveToNextEntry().should_be_false();
                    }
                };
            };

            context["requesting a directory"] = () =>
            {
                before = () =>
                {
                    tarStream = tarStreamService.WriteTarToStream(tmpDir);
                };

                it["creates the tgz stream"] = () =>
                {
                    ReaderFactory.Open(tarStream).should_not_be_null();
                };

                it["returns a stream with the files inside"] = () =>
                {
                    using (IReader tar = ReaderFactory.Open(tarStream))
                    {
                        tar.MoveToNextEntry().should_be_true();
                        tar.Entry.Key.should_be("a_file.txt");

                        tar.MoveToNextEntry().should_be_true();
                        tar.Entry.Key.should_be("a_dir/another_file.txt");
                    }
                };

                it["has content in the files"] = () =>
                {
                    using (IReader tar = ReaderFactory.Open(tarStream))
                    {
                        tar.MoveToNextEntry().should_be_true();
                        tar.Entry.Key.should_be("a_file.txt");
                        GetString(tar.OpenEntryStream(), tar.Entry.Size).should_be("Some exciting text");
                    }
                };
            };
        }