public void CreateShouldRiseExceptionOnEmptyLoginPassowrdTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); UserCreateData userCreateData = new UserCreateData() { Login = string.Empty, Password = string.Empty }; spy_repository.CreateUserResult = new User() { Login = string.Empty }; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/users/create"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "create" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; try { User actual = target.Create(userCreateData); Assert.IsTrue(false); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(HttpResponseException)); } }
public User Create(UserCreateData userCreateData) { if ((string.IsNullOrWhiteSpace(userCreateData.Login)) || (string.IsNullOrWhiteSpace(userCreateData.Password))) throw new HttpResponseException(HttpStatusCode.BadRequest); return repositoryUsers.CreateUser(userCreateData.Login, userCreateData.Password); }
public void CreateShouldReturnUserObjectTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); UserCreateData userCreateData = new UserCreateData() { Login = "******", Password = "******" }; spy_repository.CreateUserResult = new User() { Login = "******" }; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/users/create"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "create" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; User actual = target.Create(userCreateData); Assert.IsTrue(actual != null && actual.Login == userCreateData.Login); }