Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. public interface ITestService {
  2. string GetString(string testString);
  3. }
  4.  
  5. public class TestModel {
  6. string testValue { get; set; }
  7. }
  8.  
  9. public class TestController : Controller
  10. {
  11. readonly ITestService testService;
  12.  
  13. public TestController() {
  14. }
  15.  
  16. public TestController(ITestService _testService) {
  17. testService = _testService;
  18. }
  19.  
  20. [HttpPost]
  21. public async Task<IActionResult> Post([FromBody]TestModel testModel)
  22. {
  23. string test = GetString("testNew");
  24. await Task.Run(() => "test");
  25. return Ok(test);
  26. }
  27.  
  28. protected virtual string GetString(string testString)
  29. {
  30. return "test" + testString;
  31. }
  32. }
  33.  
  34. public class TestControllerTest
  35. {
  36. private Mock<ITestService> MockTestService { get; }
  37. TestController controller { get; }
  38.  
  39. public TestControllerTest()
  40. {
  41. MockTestService = new Mock<ITestService>();
  42.  
  43. controller = new TestController(MockTestService.Object);
  44. }
  45.  
  46. [Fact]
  47. public void Post_TakesTestString_ReturnsString()
  48. {
  49. var MockController = new Mock<TestController>(MockTestService.Object);
  50. MockController.Protected().Setup<string>("GetString", ItExpr.IsAny<string>()).Returns("testMockValue").Verifiable();
  51.  
  52. var result = MockController.Object.Post(new TestModel() { }).Result;
  53. // result returns NULL value
  54.  
  55. MockController.Protected().Verify("GetString", Times.Once(), ItExpr.IsAny<string>());
  56. }
  57. }
  58.  
  59. var result = MockController.Object.Post(new TestModel() { }).Result;
  60.  
  61. public class TestControllerTest {
  62.  
  63. [Fact]
  64. public async Task Post_TakesTestString_ReturnsString() {
  65. //Arrange
  66. var MockTestService = new Mock<ITestService>();
  67. var MockController = new Mock<TestController>(MockTestService.Object) {
  68. CallBase = true //<--
  69. };
  70. MockController.Protected().Setup<string>("GetString", ItExpr.IsAny<string>()).Returns("testMockValue").Verifiable();
  71. TestController controller = MockController.Object;
  72.  
  73. //Act
  74. var result = await controller.Post(new TestModel() { });
  75.  
  76. //Assert
  77. MockController.Protected().Verify("GetString", Times.Once(), ItExpr.IsAny<string>());
  78. }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement