public async Task DetailsWithCorrectName() { var name = "test"; var mock = new Mock<IUserRepository>(); mock.Setup(u => u.FindUserByName(name)).Returns(Task.FromResult(new User(name, new []{"test"}))); var controller = new UserController(mock.Object); var response = await controller.GetUser(name); mock.Verify(u => u.FindUserByName(name), Times.Once); Assert.IsNotNull(response); Assert.AreEqual(response.Name, name); }
public void DetailsWithIncorrectName() { var name = "test"; var mock = new Mock<IUserRepository>(); mock.Setup(u => u.FindUserByName(name)).Returns(Task.FromResult<User>(null)); var controller = new UserController(mock.Object); var ex = Assert.Catch(async () => await controller.GetUser(name)) as HttpResponseException; mock.Verify(u => u.FindUserByName(name), Times.Once); Assert.IsNotNull(ex); Assert.AreEqual(ex.Response.StatusCode, HttpStatusCode.NotFound); }