PageRenderTime 44ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/src/Ninject.Test/Unit/BindingActionStrategyTests.cs

http://github.com/ninject/ninject
C# | 66 lines | 56 code | 10 blank | 0 comment | 4 complexity | 855ec5e51bd10c4c9ee6e7b594908788 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause
  1. namespace Ninject.Tests.Unit.BindingActionStrategyTests
  2. {
  3. using System;
  4. using FluentAssertions;
  5. using Moq;
  6. using Ninject.Activation;
  7. using Ninject.Activation.Strategies;
  8. using Ninject.Planning.Bindings;
  9. using Xunit;
  10. public class BindingActionStrategyContext
  11. {
  12. protected BindingActionStrategy strategy;
  13. protected Mock<IContext> contextMock;
  14. protected Mock<IBinding> bindingMock;
  15. public BindingActionStrategyContext()
  16. {
  17. this.contextMock = new Mock<IContext>();
  18. this.bindingMock = new Mock<IBinding>();
  19. this.strategy = new BindingActionStrategy();
  20. }
  21. }
  22. public class WhenActivateIsCalled : BindingActionStrategyContext
  23. {
  24. [Fact]
  25. public void StrategyInvokesActivationActionsDefinedInBinding()
  26. {
  27. bool action1WasCalled = false;
  28. bool action2WasCalled = false;
  29. Action<IContext, object> action1 = (ctx, c) => action1WasCalled = ctx == this.contextMock.Object;
  30. Action<IContext, object> action2 = (ctx, c) => action2WasCalled = ctx == this.contextMock.Object;
  31. var actions = new[] { action1, action2 };
  32. this.contextMock.SetupGet(x => x.Binding).Returns(this.bindingMock.Object);
  33. this.bindingMock.SetupGet(x => x.ActivationActions).Returns(actions);
  34. this.strategy.Activate(this.contextMock.Object, new InstanceReference());
  35. action1WasCalled.Should().BeTrue();
  36. action2WasCalled.Should().BeTrue();
  37. }
  38. }
  39. public class WhenDeactivateIsCalled : BindingActionStrategyContext
  40. {
  41. [Fact]
  42. public void StrategyInvokesDeactivationActionsDefinedInBinding()
  43. {
  44. bool action1WasCalled = false;
  45. bool action2WasCalled = false;
  46. Action<IContext, object> action1 = (ctx, c) => action1WasCalled = ctx == this.contextMock.Object;
  47. Action<IContext, object> action2 = (ctx, c) => action2WasCalled = ctx == this.contextMock.Object;
  48. var actions = new[] { action1, action2 };
  49. this.contextMock.SetupGet(x => x.Binding).Returns(this.bindingMock.Object);
  50. this.bindingMock.SetupGet(x => x.DeactivationActions).Returns(actions);
  51. this.strategy.Deactivate(this.contextMock.Object, new InstanceReference());
  52. action1WasCalled.Should().BeTrue();
  53. action2WasCalled.Should().BeTrue();
  54. }
  55. }
  56. }