diff --git a/RichardSzalay.Hosts.Tests/FileInfoResourceSpec.cs b/RichardSzalay.Hosts.Tests/FileInfoResourceSpec.cs
new file mode 100644
index 0000000..b506c44
--- /dev/null
+++ b/RichardSzalay.Hosts.Tests/FileInfoResourceSpec.cs
@@ -0,0 +1,45 @@
+using Machine.Specifications;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace RichardSzalay.Hosts.Tests
+{
+ public class FileInfoResourceSpec
+ {
+ [Subject(typeof(FileInfoResource), "OpenWrite")]
+ public class When_writing_to_the_resource
+ {
+ Establish context = () =>
+ {
+ tempFile = new FileInfo(Path.GetTempFileName());
+
+ File.WriteAllText(tempFile.FullName, "Test original longer text");
+
+ sut = new FileInfoResource(tempFile);
+ };
+
+ Because of = () =>
+ {
+ using (Stream stream = sut.OpenWrite())
+ using (StreamWriter writer = new StreamWriter(stream))
+ {
+ writer.Write("Test 2");
+
+ stream.Flush();
+ }
+
+ result = File.ReadAllText(tempFile.FullName);
+ };
+
+ It should_overwrite_existing_contents = () =>
+ result.ShouldEqual("Test 2");
+
+ static FileInfoResource sut;
+ static FileInfo tempFile;
+ static string result;
+ }
+ }
+}
diff --git a/RichardSzalay.Hosts.Tests/RichardSzalay.Hosts.Tests.csproj b/RichardSzalay.Hosts.Tests/RichardSzalay.Hosts.Tests.csproj
index 7dfd85d..af77431 100644
--- a/RichardSzalay.Hosts.Tests/RichardSzalay.Hosts.Tests.csproj
+++ b/RichardSzalay.Hosts.Tests/RichardSzalay.Hosts.Tests.csproj
@@ -47,6 +47,7 @@
+
diff --git a/RichardSzalay.Hosts/FileInfoResource.cs b/RichardSzalay.Hosts/FileInfoResource.cs
index 031d287..abb16b5 100644
--- a/RichardSzalay.Hosts/FileInfoResource.cs
+++ b/RichardSzalay.Hosts/FileInfoResource.cs
@@ -26,9 +26,7 @@ public Stream OpenRead()
public Stream OpenWrite()
{
- this.file.Delete();
-
- return this.file.OpenWrite();
+ return File.Create(this.file.FullName);
}
#endregion