public void WriteMessageWillWriteCorrectMessageToMessageWriter() { var writer = new SpyMessageWriter(); var softwareUnderTesting = new Salution(writer); softwareUnderTesting.WriteMessage(); Assert.Equal(expected: "Hello DI!", actual: writer.WrittenMessage); }
static void Main() { #region Late Binding //string directory = Directory.GetCurrentDirectory(); //IConfigurationRoot configuration = new ConfigurationBuilder() // .SetBasePath(Directory.GetCurrentDirectory()) // .AddJsonFile("appsettings.json") // .Build(); //string typename = configuration["messageWriter"]; //Type type = Type.GetType(typename, throwOnError: true); //IMessageWriter writer = (IMessageWriter)Activator.CreateInstance(type); #endregion #region Extensibility using the decorator pattern that is enabled by using DI //IMessageWriter writer = new SecureMessageWriter(new ConsoleMessageWriter(), WindowsIdentity.GetCurrent()); #endregion IMessageWriter writer = new ConsoleMessageWriter(); var salution = new Salution(writer); salution.WriteMessage(); //WriteLine("Hello World!"); }