public void Test_DefaultLogger_Simple_Shim() { using (ShimsContext.Create()) { // Arrange var shim = new ShimSealedLoggerDependency(); shim.DefaultLoggerGet = () => "DefaultLogger"; var loggerDependency = shim.Instance; // Act string defaultLogger = loggerDependency.DefaultLogger; Console.WriteLine("Default logger is '{0}'", defaultLogger); // Assert Assert.That(defaultLogger, Is.EqualTo("DefaultLogger")); } }
public void Test_GetDirectoryByLoggerName_Shim_Always_Returns_The_Same_Value(string loggerName) { using (ShimsContext.Create()) { // Arrange var shim = new ShimSealedLoggerDependency(); // For any parameter in the GetDirectoryByLoggerName Stub should return "C:\\Foo". shim.GetDirectoryByLoggerNameString = (string logger) => "C:\\Foo"; var loggerDependency = shim.Instance; // Act string directory = loggerDependency.GetDirectoryByLoggerName(loggerName); Console.WriteLine("Directory for the logger '{0}' is '{1}'", loggerName, directory); // Assert Assert.That(directory, Is.EqualTo("C:\\Foo")); } }
public void Test_GetCurrentDirrectory_Simple_Shim() { using (ShimsContext.Create()) { // Arrange var shim = new ShimSealedLoggerDependency(); shim.GetCurrentDirectory = () => "D:\\Temp"; // Act // There is an explicit conversion from the shim to shimed object SealedLoggerDependency loggerDependency = shim; var currentDirectory = loggerDependency.GetCurrentDirectory(); Console.WriteLine("Current directory is {0}", currentDirectory); // Assert Assert.That(currentDirectory, Is.EqualTo("D:\\Temp")); } }
public void Test_GetDirectoryByLoggerName_Shim_Returns_Different_Value_Based_On_The_Arguments(string loggerName) { using (ShimsContext.Create()) { // Arrange var shim = new ShimSealedLoggerDependency(); // Setting up our stub to return different values based on the argument. // This code is similar to following implementation: // public string GetDirectoryByLoggername(string s) { return "C:\\" + s; } shim.GetDirectoryByLoggerNameString = (string logger) => "C:\\" + logger; var loggerDependency = shim.Instance; string directory = loggerDependency.GetDirectoryByLoggerName(loggerName); Console.WriteLine("Directory for the logger '{0}' is '{1}'", loggerName, directory); // Assert Assert.That(directory, Is.EqualTo("C:\\" + loggerName)); } }
public void Test_Shim_For_Generic_GetConfigValue_Of_T() { using (ShimsContext.Create()) { // Arrange var shim = new ShimSealedLoggerDependency(); shim.GetConfigValueOf1(() => "default"); // Act var loggerDependency = shim.Instance; var str = loggerDependency.GetConfigValue<string>(); Console.WriteLine("Config value is '{0}'", str); // Assert Assert.That(str, Is.EqualTo("default")); } }
public void Test_RollingRequired_Event_Simple_Shim() { using (ShimsContext.Create()) { // Arrange var shim = new ShimSealedLoggerDependency(); var loggerDependency = shim.Instance; // Act // We can't override firing event directly! // But we can override subscription and unsubscription. EventHandler backingDelegate = null; shim.RollingRequiredAddEventHandler = handler => backingDelegate += handler; bool eventOccurred = false; loggerDependency.RollingRequired += (sender, args) => eventOccurred = true; // Raising event manually backingDelegate(this, EventArgs.Empty); Assert.IsTrue(eventOccurred, "Event should be raised!"); } }