I'm a newbie and I've never done unit-testing before.
I've made a console application that zips files and sends email. Now I want to do unit testing. But I'm not sure if my code is testable.
For example, I've a method called -
public static void readAndEmailCsvFiles(string filePath)
{
DirectoryInfo directory = new DirectoryInfo(filePath);
var files = directory.GetFiles("*.csv", SearchOption.AllDirectories);
var dirDate = string.Format("{0:yyyy-MM-dd HH-mm}", DateTime.Now);
bool isExists = System.IO.Directory.Exists(filePath + "\\" + "PROCESSED" + "\\" + dirDate);
if (!isExists)
{
System.IO.Directory.CreateDirectory(filePath + "\\" + "PROCESSED" + "\\" + dirDate);
}
try
{
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile())
{
foreach (var file in files)
{
Console.WriteLine("Processing File : " + file + "\n");
zip.AddFile(file.FullName, "");
zip.Save(Path.Combine(filePath, "PROCESSED", dirDate, file.Name) + ".zip");
sendEmail.SendMailMessage(Path.Combine(filePath, "PROCESSED", dirDate, file.Name) + ".zip");
}
}
foreach (var file in files)
{
File.Delete(file.FullName);
Console.WriteLine("");
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
How do I go about creating tests for the method above ?