/src/Ninject.Tests/Unit/CompiledModuleLoaderPluginTests.cs

https://github.com/developingchris/ninject · C# · 40 lines · 35 code · 5 blank · 0 comment · 0 complexity · 3c89ca480abae0cf906f0fff7df3455c MD5 · raw file

  1. using System;
  2. using System.CodeDom.Compiler;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Reflection;
  7. using Moq;
  8. using Ninject.Modules;
  9. using Xunit;
  10. using Xunit.Should;
  11. namespace Ninject.Tests.Unit.CompiledModuleLoaderPluginTests
  12. {
  13. public class CompiledModuleLoaderPluginContext
  14. {
  15. protected readonly CompiledModuleLoaderPlugin loaderPlugin;
  16. protected readonly Mock<IKernel> kernelMock;
  17. protected readonly string assemblyFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"TestModules\Ninject.Tests.TestModule.dll");
  18. public CompiledModuleLoaderPluginContext()
  19. {
  20. kernelMock = new Mock<IKernel>();
  21. loaderPlugin = new CompiledModuleLoaderPlugin(kernelMock.Object);
  22. }
  23. }
  24. public class WhenLoadModulesIsCalled : CompiledModuleLoaderPluginContext
  25. {
  26. [Fact(Skip = "Need to bring TestModule assembly into git")]
  27. public void CallsLoadMethodOnKernelWithAssemblies()
  28. {
  29. Assembly expected = Assembly.Load("Ninject.Tests.TestModule");
  30. expected.ShouldNotBeNull();
  31. loaderPlugin.LoadModules(new[] { assemblyFilename });
  32. kernelMock.Verify(x => x.Load(It.Is<IEnumerable<Assembly>>(p => p.Contains(expected))));
  33. }
  34. }
  35. }