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);
		}