Unit Testing in BizTalk – TestFile v2.0
Wednesday, April 08 2009 - Projects
public class TestFile : IDisposable
{
private bool _disposedValue = false;
private string _resourceName;
private string _fileName;
public TestFile(string resourceName) : this(null, resourceName) { }
public TestFile(string fileName, string resourceName)
{
if (fileName == null)
{
this.FileName = Path.GetTempFileName();
File.Delete(this.FileName);
}
else
this.FileName = fileName;
using (Stream s = LoadResourceFromAppDomain(resourceName))
using (StreamReader sr = new StreamReader(s))
using (StreamWriter sw = File.CreateText(this.FileName))
{
sw.Write(sr.ReadToEnd());
sw.Flush();
}
}
private Stream LoadResourceFromAppDomain(string resourceName)
{
Assembly[] appDomainAssemblies = AppDomain.CurrentDomain.GetAssemblies();
Stream outStream = null;
foreach (var lAssem in appDomainAssemblies)
{
outStream = lAssem.GetManifestResourceStream(resourceName);
if (outStream != null) return outStream;
}
throw new Exception(string.Format("Unable to find resource stream {0}",resourceName));
}
public string FileName
{
get { return _fileName; }
set
{
_fileName = value;
}
}
protected virtual void Dispose(bool disposing)
{
if (!this._disposedValue)
{
if (disposing)
{
if (File.Exists(_fileName))
{
File.Delete(_fileName);
}
}
}
this._disposedValue = true;
}
#region IDisposable Members
public void Dispose()
{
// Do not change this code.Put cleanup code in Dispose(bool disposing) above.
Dispose(true);
GC.SuppressFinalize(this);
}
#endregion
}



