Ejemplo n.º 1
0
        public void Add_WhenGivenNonEmptyFolder_ShouldDeleteFolderWhenDisposed()
        {
            //---------------Set up test pack-------------------
            var tempFolder = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

            Directory.CreateDirectory(tempFolder);
            var f1 = Path.Combine(tempFolder, Guid.NewGuid().ToString());

            File.WriteAllBytes(f1, RandomValueGen.GetRandomBytes(100, 200));
            var f2 = Path.Combine(tempFolder, RandomValueGen.GetRandomString(10, 20));

            File.WriteAllBytes(f2, Encoding.UTF8.GetBytes(RandomValueGen.GetRandomString(100, 200)));

            //---------------Assert Precondition----------------
            Assert.IsTrue(Directory.Exists(tempFolder));
            Assert.IsTrue(File.Exists(f1));
            Assert.IsTrue(File.Exists(f2));

            //---------------Execute Test ----------------------
            using (var ad = new AutoDeleter())
            {
                ad.Add(tempFolder);
            }

            //---------------Test Result -----------------------
            Assert.IsFalse(File.Exists(f1));
            Assert.IsFalse(File.Exists(f2));
            Assert.IsFalse(Directory.Exists(tempFolder));
        }
 public override EmailAttachmentBuilder WithRandomProps()
 {
     return(base.WithRandomProps()
            .WithProp(a => a.Name = RandomValueGen.GetRandomFileName())
            .WithProp(a => a.Data = RandomValueGen.GetRandomBytes(1))
            .WithProp(a => a.Enabled = true));
 }
Ejemplo n.º 3
0
        public async Task DownloadFile_GivenAvailableDownload_WhenNoExistingFile_ShouldDownloadEntireFile()
        {
            //---------------Set up test pack-------------------
            using (var http = new HttpServer())
            {
                var folder = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
                Directory.CreateDirectory(folder);
                var someBytes = RandomValueGen.GetRandomBytes(100, 200);
                var srcPath   = RandomValueGen.GetRandomString(10, 20);
                http.AddFileHandler((processor, stream) => processor.Path == "/" + srcPath ? someBytes : null);
                var sut          = Create();
                var linkUrl      = http.GetFullUrlFor(srcPath);
                var expectedFile = Path.Combine(folder, srcPath);

                //---------------Assert Precondition----------------

                //---------------Execute Test ----------------------
                var result = await sut.Download(linkUrl, expectedFile);

                //---------------Test Result -----------------------
                Assert.That(result, Is.True);
                Assert.IsTrue(File.Exists(expectedFile));
                CollectionAssert.AreEqual(someBytes, File.ReadAllBytes(expectedFile));
            }
        }
Ejemplo n.º 4
0
        public void AddAttachment_VariationWithContentID_AddsAttachmentToAttachmentsListWithProvidedContentID()
        {
            //---------------Set up test pack-------------------
            using (var email = CreateWithRandomRecipientAndSender())
            {
                var fileName  = RandomValueGen.GetRandomString();
                var data      = RandomValueGen.GetRandomBytes();
                var mimeType  = RandomValueGen.GetRandomMIMEType();
                var contentID = RandomValueGen.GetRandomAlphaNumericString();

                //---------------Assert Precondition----------------
                Assert.AreEqual(0, email.Attachments.Count);
                //---------------Execute Test ----------------------
                email.AddAttachment(fileName, data, mimeType, contentID);

                //---------------Test Result -----------------------
                var attachment = email.Attachments.FirstOrDefault(a => a.Name == fileName && a.MIMEType == mimeType && a.ContentID == contentID);
                Assert.IsNotNull(attachment);
                CollectionAssert.AreEqual(data, attachment.Data);
                var message = email.CreateMessage();

                var actual = message.Attachments.First();
                Assert.IsTrue(actual.ContentDisposition.Inline);
                Assert.AreEqual(actual.ContentDisposition.DispositionType, DispositionTypeNames.Inline);
            }
        }
Ejemplo n.º 5
0
        public void AddImageAttachment_AddsAttachmentWithMIMEType_FromExtensionAndReturnsAttachmentContentID()
        {
            // yes, I know MIME-from-extension is flaky. It's good enough for now.
            //---------------Set up test pack-------------------
            var fileName = RandomValueGen.GetRandomString() + ".png";
            var fileData = RandomValueGen.GetRandomBytes();

            using (var email = CreateWithRandomRecipientAndSender())
            {
                //---------------Assert Precondition----------------
                Assert.IsFalse(email.Attachments.Any());

                //---------------Execute Test ----------------------
                var result = email.AddInlineImageAttachment(fileName, fileData);

                //---------------Test Result -----------------------
                Assert.AreEqual(1, email.Attachments.Count);
                Assert.IsTrue(email.Attachments.All(a => a.Name == fileName && a.MIMEType == "image/png"));
                var message    = email.CreateMessage();
                var attachment = message.Attachments.First();
                Assert.AreEqual(result, attachment.ContentId);
                Assert.IsTrue(attachment.ContentDisposition.Inline);
                Assert.AreEqual(DispositionTypeNames.Inline, attachment.ContentDisposition.DispositionType);
            }
        }
Ejemplo n.º 6
0
        public void BinaryData_get_ShouldReturnBytesInFile()
        {
            //---------------Set up test pack-------------------
            var expected = RandomValueGen.GetRandomBytes();

            using (var sut = new AutoTempFile(expected))
            {
                //---------------Assert Precondition----------------

                //---------------Execute Test ----------------------
                var result = sut.BinaryData;

                //---------------Test Result -----------------------
                Assert.AreEqual(expected, result);
            }
        }
Ejemplo n.º 7
0
        public void Construct_GivenSomeBytes_ShouldPutThemInTheTempFile()
        {
            //---------------Set up test pack-------------------
            var expected = RandomValueGen.GetRandomBytes();

            using (var sut = new AutoTempFile(expected))
            {
                //---------------Assert Precondition----------------

                //---------------Execute Test ----------------------
                var result = File.ReadAllBytes(sut.Path);

                //---------------Test Result -----------------------
                CollectionAssert.AreEqual(expected, result);
            }
        }
Ejemplo n.º 8
0
        public void Construct_GivenBasePath_ShouldUseThatInsteadOfTempDirAndWriteBytes()
        {
            //---------------Set up test pack-------------------
            var baseFolder = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath);
            var expected   = RandomValueGen.GetRandomBytes();

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            using (var tempFile = new AutoTempFile(baseFolder, expected))
            {
                //---------------Test Result -----------------------
                Assert.AreEqual(baseFolder, Path.GetDirectoryName(tempFile.Path));
                CollectionAssert.AreEqual(expected, File.ReadAllBytes(tempFile.Path));
            }
        }
Ejemplo n.º 9
0
        public void CreateMessage_AddsAllAttachmentsToMailMessage()
        {
            //---------------Set up test pack-------------------
            var fileName = RandomValueGen.GetRandomString();
            var data     = RandomValueGen.GetRandomBytes();
            var mimeType = "text/plain";

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            using (var email = CreateActualWithRandomRecipientAndSender())
            {
                email.AddAttachment(fileName, data, mimeType);
                var message = email.CreateMessage();
                //---------------Test Result -----------------------
                Assert.AreEqual(1, message.Attachments.Count);
            }
        }
Ejemplo n.º 10
0
        public void AddPDFAttachment_AddsAttachmentWithMIMEType_APPLICATION_SLASH_PDF()
        {
            //---------------Set up test pack-------------------
            var fileName = RandomValueGen.GetRandomString();
            var bytes    = RandomValueGen.GetRandomBytes();

            using (var email = CreateWithRandomRecipientAndSender())
            {
                //---------------Assert Precondition----------------
                Assert.IsFalse(email.Attachments.Any());
                //---------------Execute Test ----------------------
                email.AddPDFAttachment(fileName, bytes);

                //---------------Test Result -----------------------
                Assert.AreEqual(1, email.Attachments.Count);
                Assert.IsTrue(email.Attachments.All(a => a.Name == fileName && a.MIMEType == "application/pdf"));
            }
        }
Ejemplo n.º 11
0
        public void Construct_GivenTwoStringsAndBinaryData_ShouldUseStringsForFolderAndFileName()
        {
            //---------------Set up test pack-------------------
            var baseFolder   = GetExecutingAssemblyFolder();
            var fileName     = RandomValueGen.GetRandomString(5, 10) + "." + RandomValueGen.GetRandomString(3, 3);
            var data         = RandomValueGen.GetRandomBytes();
            var expectedPath = Path.Combine(baseFolder, fileName);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            using (new AutoTempFile(baseFolder, fileName, data))
            {
                //---------------Test Result -----------------------
                Assert.IsTrue(File.Exists(expectedPath));
                CollectionAssert.AreEqual(data, File.ReadAllBytes(expectedPath));
            }
        }
Ejemplo n.º 12
0
        public void BinaryData_set_ShouldOverwriteDataInFile()
        {
            //---------------Set up test pack-------------------
            var unexpected = RandomValueGen.GetRandomBytes();
            var expected   = RandomValueGen.GetRandomBytes();

            using (var sut = new AutoTempFile(unexpected))
            {
                //---------------Assert Precondition----------------

                //---------------Execute Test ----------------------
                sut.BinaryData = expected;
                var result = File.ReadAllBytes(sut.Path);

                //---------------Test Result -----------------------
                Assert.AreEqual(expected, result);
            }
        }
Ejemplo n.º 13
0
        public void CreateMessage_AddsAttachmentMemoryStreamsToDisposables()
        {
            //---------------Set up test pack-------------------
            var fileName = RandomValueGen.GetRandomString();
            var data     = RandomValueGen.GetRandomBytes();
            var mimeType = "text/plain";

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            using (var email = CreateWithRandomRecipientAndSender())
            {
                email.AddAttachment(fileName, data, mimeType);
                Assert.IsFalse(email.InternalDisposables.Any());
                email.CreateMessage();
                //---------------Test Result -----------------------
                Assert.AreEqual(1, email.InternalDisposables.Count(d => d is MemoryStream));
            }
        }
Ejemplo n.º 14
0
        public void AddAttachment_ReturnsIDForAttachment()
        {
            //---------------Set up test pack-------------------
            using (var email = CreateWithRandomRecipientAndSender())
            {
                var fileName = RandomValueGen.GetRandomString();
                var data     = RandomValueGen.GetRandomBytes();
                var mimeType = "text/plain";
                email.Subject = RandomValueGen.GetRandomString();
                email.Body    = RandomValueGen.GetRandomString();

                //---------------Assert Precondition----------------

                //---------------Execute Test ----------------------
                var id      = email.AddAttachment(fileName, data, mimeType, true);
                var message = email.CreateMessage();
                //---------------Test Result -----------------------
                var att = message.Attachments.FirstOrDefault();
                Assert.IsNotNull(att);
                Assert.AreEqual(id, att.ContentId);
                Assert.IsTrue(att.ContentDisposition.Inline);
                Assert.AreEqual(att.ContentDisposition.DispositionType, DispositionTypeNames.Inline);
            }
        }
Ejemplo n.º 15
0
        public void Dispose_ShouldRemoveNonEmptyTempFolder()
        {
            //---------------Set up test pack-------------------
            string folderPath;

            using (var folder = new AutoTempFolder())
            {
                folderPath = folder.Path;
                Assert.IsNotNull(folderPath);


                //---------------Assert Precondition----------------
                Assert.IsTrue(Directory.Exists(folderPath));
                var entries = Directory.EnumerateFileSystemEntries(folderPath, "*", SearchOption.AllDirectories);
                CollectionAssert.IsEmpty(entries);

                //---------------Execute Test ----------------------
                File.WriteAllBytes(Path.Combine(folderPath, RandomValueGen.GetRandomString(2, 10)), RandomValueGen.GetRandomBytes());
                File.WriteAllBytes(Path.Combine(folderPath, RandomValueGen.GetRandomString(11, 20)), RandomValueGen.GetRandomBytes());
                entries = Directory.EnumerateFileSystemEntries(folderPath, "*", SearchOption.AllDirectories);
                CollectionAssert.IsNotEmpty(entries);
            }
            //---------------Test Result -----------------------
            Assert.IsFalse(Directory.Exists(folderPath));
        }