diff --git a/src/TestabilityKata.Tests/CustomFileWriterTest.cs b/src/TestabilityKata.Tests/CustomFileWriterTest.cs index b7d80cb..6c82776 100644 --- a/src/TestabilityKata.Tests/CustomFileWriterTest.cs +++ b/src/TestabilityKata.Tests/CustomFileWriterTest.cs @@ -1,4 +1,5 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; +using Autofac; +using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; using System; using System.Collections.Generic; @@ -12,10 +13,20 @@ public class CustomFileWriterTest { private IMailSender fakeMailSender; + private ICustomFileWriterFactory customFileWriterFactory; + [TestInitialize] public void Initialize() { + var containerBuilder = new ContainerBuilder(); + containerBuilder.RegisterModule(new TestabilityKataAutofacConfiguration()); + fakeMailSender = Substitute.For(); + + containerBuilder.Register(c => fakeMailSender).As(); + + var container = containerBuilder.Build(); + customFileWriterFactory = container.Resolve(); } [TestMethod] @@ -23,9 +34,7 @@ public void WhenCreatingFileAnEmailIsSentOut() { const string testFilePath = @"C:\WhenCreatingFileAnEmailIsSentOut.txt"; - var customFileWriter = new CustomFileWriter( - fakeMailSender, - testFilePath); + var customFileWriter = customFileWriterFactory.Create(testFilePath); //if the existing file exists, delete it before running the test, since //we need to get to the point where a new file is created. diff --git a/src/TestabilityKata.Tests/MailSenderTest.cs b/src/TestabilityKata.Tests/MailSenderTest.cs index 5d1c3e2..09920dd 100644 --- a/src/TestabilityKata.Tests/MailSenderTest.cs +++ b/src/TestabilityKata.Tests/MailSenderTest.cs @@ -1,4 +1,5 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; +using Autofac; +using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; using System.Text; @@ -13,7 +14,11 @@ public class MailSenderTest [TestInitialize] public void Initialize() { - mailSender = new MailSender(); + var containerBuilder = new ContainerBuilder(); + containerBuilder.RegisterModule(new TestabilityKataAutofacConfiguration()); + + var container = containerBuilder.Build(); + mailSender = container.Resolve(); } [TestMethod] diff --git a/src/TestabilityKata.Tests/ProgramTest.cs b/src/TestabilityKata.Tests/ProgramTest.cs index 8e61b38..1495dab 100644 --- a/src/TestabilityKata.Tests/ProgramTest.cs +++ b/src/TestabilityKata.Tests/ProgramTest.cs @@ -17,12 +17,17 @@ public class ProgramTest [TestInitialize] public void Initialize() { + var containerBuilder = new ContainerBuilder(); + containerBuilder.RegisterModule(new TestabilityKataAutofacConfiguration()); + fakeMailSender = Substitute.For(); fakeLogger = Substitute.For(); - program = new Program( - fakeLogger, - fakeMailSender); + containerBuilder.Register(c => fakeMailSender).As(); + containerBuilder.Register(c => fakeLogger).As(); + + var container = containerBuilder.Build(); + program = container.Resolve(); } [TestMethod] diff --git a/src/TestabilityKata.Tests/TestabilityKata.Tests.csproj b/src/TestabilityKata.Tests/TestabilityKata.Tests.csproj index f8c14f3..14ce7f0 100644 --- a/src/TestabilityKata.Tests/TestabilityKata.Tests.csproj +++ b/src/TestabilityKata.Tests/TestabilityKata.Tests.csproj @@ -1,17 +1,17 @@ - netcoreapp2.0 + net6.0 false - - - - - + + + + + diff --git a/src/TestabilityKata/Program.cs b/src/TestabilityKata/Program.cs index 38cbb8c..f068b6c 100644 --- a/src/TestabilityKata/Program.cs +++ b/src/TestabilityKata/Program.cs @@ -1,4 +1,5 @@ -using System; +using Autofac; +using System; using System.IO; namespace TestabilityKata @@ -7,12 +8,12 @@ public class Program : IProgram { public static void Main(string[] args) { - var mailSender = new MailSender(); - new Program( - new Logger( - mailSender, - new CustomFileWriterFactory(mailSender)), - mailSender) + var containerBuilder = new ContainerBuilder(); + containerBuilder.RegisterModule(new TestabilityKataAutofacConfiguration()); + + var container = containerBuilder.Build(); + container + .Resolve() .Run(); } diff --git a/src/TestabilityKata/TestabilityKata.csproj b/src/TestabilityKata/TestabilityKata.csproj index ce1697a..a52c994 100644 --- a/src/TestabilityKata/TestabilityKata.csproj +++ b/src/TestabilityKata/TestabilityKata.csproj @@ -2,7 +2,11 @@ Exe - netcoreapp2.0 + net6.0 + + + + diff --git a/src/TestabilityKata/TestabilityKataAutofacConfiguration.cs b/src/TestabilityKata/TestabilityKataAutofacConfiguration.cs new file mode 100644 index 0000000..76c7092 --- /dev/null +++ b/src/TestabilityKata/TestabilityKataAutofacConfiguration.cs @@ -0,0 +1,20 @@ +using Autofac; +using System; +using System.Collections.Generic; +using System.Text; + +namespace TestabilityKata +{ + public class TestabilityKataAutofacConfiguration: Module + { + protected override void Load(ContainerBuilder builder) + { + builder + .RegisterAssemblyTypes( + typeof(TestabilityKataAutofacConfiguration).Assembly) + .AsImplementedInterfaces(); + + base.Load(builder); + } + } +}