Advertisement
Guest User

Untitled

a guest
May 4th, 2016
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. Bind<IFeature>().To<FirstFeature>().Named("1");
  2. Bind<IFeature>().To<SecondFeature>().Named("2");
  3. Bind<IFeature>().To<ThirdFeature>().Named("3");
  4. Bind<IFeatureFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider());
  5.  
  6. public FeatureService(IFeatureFactory featureFactory, IUILayer uiHandler, int howManyFeatures)
  7. {
  8. this.featureFactory = featureFactory;
  9. this.uiHandler = uiHandler;
  10. this.howManyFeatures = howManyFeatures;
  11. }
  12.  
  13. public async Task startService()
  14. {
  15. bool isBadInput = false;
  16. string userSelection = null;
  17. uiHandler.displayMenu(howManyFeatures);
  18. userSelection = uiHandler.getSelection();
  19. while (!userSelection.Equals((howManyFeatures+1).ToString()))
  20. {
  21. IFeature feature = null;
  22. try
  23. {
  24. feature = featureFactory.createFeature(userSelection);
  25. isBadInput = false;
  26. }
  27. catch (ActivationException ex)
  28. {
  29. uiHandler.displayErrorMessage();
  30. isBadInput = true;
  31. }
  32. if (!isBadInput)
  33. {
  34. await feature.execFeature();
  35. }
  36. uiHandler.displayMenu(howManyFeatures);
  37. userSelection = uiHandler.getSelection();
  38. }
  39. }
  40.  
  41. [TestMethod]
  42. public void WhenUserEnterValidSelectionExecFeatureCalled()
  43. {
  44. //Arrange
  45. Mock<IFeature> featureMock = new Mock<IFeature>();
  46. Mock<IConsoleService> consoleServiceMock = new Mock<IConsoleService>();
  47. // mock user input 7
  48. consoleServiceMock.Setup(c => c.ReadLine()).Returns("7");
  49. IUILayer uiLayer = new ConsoleUILayer(consoleServiceMock.Object);
  50. Mock<IFeatureFactory> featureFactory = new Mock<IFeatureFactory>();
  51. featureMock.Setup(t => t.execFeature());
  52. featureFactory.Setup(t => t.createFeature(It.IsAny<string>())).Returns(featureMock.Object);
  53. // init FeatureService with 3 features
  54. IFeatureService featureService = new FeatureService(featureFactory.Object, uiLayer, 3);
  55.  
  56. //Act
  57. featureService.startService();
  58.  
  59. //Assert
  60. featureMock.Verify(t => t.execFeature());
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement