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)); }
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)); } }
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); } }
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); } }
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); } }
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); } }
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)); } }
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); } }
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")); } }
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)); } }
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); } }
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)); } }
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); } }
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)); }