Skip to content
Open
12 changes: 6 additions & 6 deletions src/TestabilityKata.Tests/TestabilityKata.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>

<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="FluffySpoon.Testing.Autofake.Autofac" Version="1.0.5" />
<PackageReference Include="FluffySpoon.Testing.Autofake.NSubstitute" Version="1.0.5" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
<PackageReference Include="MSTest.TestAdapter" Version="1.1.18" />
<PackageReference Include="MSTest.TestFramework" Version="1.1.18" />
<PackageReference Include="FluffySpoon.Testing.Autofake.Autofac" Version="1.34.0" />
<PackageReference Include="FluffySpoon.Testing.Autofake.NSubstitute" Version="1.34.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
</ItemGroup>

<ItemGroup>
Expand Down
32 changes: 26 additions & 6 deletions src/TestabilityKata/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ public static void Main(string[] args)
{
var mailSender = new MailSender();
new Program(
new Logger(mailSender),
new Logger(
mailSender,
new CustomFileWriterFactory(mailSender)),
mailSender)
.Run();
}
Expand Down Expand Up @@ -49,15 +51,15 @@ public enum LogLevel

public class Logger
{
//we can't do CustomFileWriter yet, because its file name depends on the log level.
//see the next step for that.

private readonly MailSender mailSender;
private readonly CustomFileWriterFactory customFileWriterFactory;

public Logger(
MailSender mailSender)
MailSender mailSender,
CustomFileWriterFactory customFileWriterFactory)
{
this.mailSender = mailSender;
this.customFileWriterFactory = customFileWriterFactory;
}

public void Log(LogLevel logLevel, string logText)
Expand All @@ -68,7 +70,7 @@ public void Log(LogLevel logLevel, string logText)
{

//also log to file
var writer = new CustomFileWriter(mailSender, @"C:\" + logLevel + "-annoying-log-file.txt");
var writer = customFileWriterFactory.Create(@"C:\" + logLevel + "-annoying-log-file.txt");
writer.AppendLine(logText);

//send e-mail about error
Expand All @@ -90,6 +92,24 @@ public void SendMail(string recipient, string content)
}
}

public class CustomFileWriterFactory
{
private readonly MailSender mailSender;

public CustomFileWriterFactory(
MailSender mailSender)
{
this.mailSender = mailSender;
}

public CustomFileWriter Create(string filePath)
{
return new CustomFileWriter(
mailSender,
filePath);
}
}

public class CustomFileWriter
{
private readonly MailSender mailSender;
Expand Down
2 changes: 1 addition & 1 deletion src/TestabilityKata/TestabilityKata.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

</Project>