public void DeleteShouldReturnForbiddenTest()
        {
            StatusesRepositorySpy spy_repository = new StatusesRepositorySpy();
            CredentialsCheckerSpy_AlwaysFail spy_checker = new CredentialsCheckerSpy_AlwaysFail();
            StatusesController target = new StatusesController(spy_repository, spy_checker);
            spy_repository.GetSingleTweetResult = new Tweet() { Content = "Twit 1", DateAndTime = new DateTime(2012, 10, 20), Id = 10, UserId = 1 };

            var config = new HttpConfiguration();
            var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/statuses/delete");
            var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}");
            var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "statuses" }, { "action", "delete" } });
            target.ControllerContext = new HttpControllerContext(config, routeData, request);
            target.Request = request;
            target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;

            var actual = target.Delete(10);

            Assert.AreEqual(HttpStatusCode.Forbidden, actual.StatusCode);
        }
        public void ChangePasswordShouldRiseExceptionTest()
        {
            UserRepositorySpy spy_repository = new UserRepositorySpy();
            CredentialsCheckerSpy_AlwaysFail spy_checker = new CredentialsCheckerSpy_AlwaysFail();
            UsersController target = new UsersController(spy_repository, spy_checker);
            UserChangePasswordData user = new UserChangePasswordData() { NewPassword = "******", OldPassword = "******" };
            spy_repository.GetSingleUserResult = new User() { Id = 1, Login = "******" };

            var config = new HttpConfiguration();
            var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/users/changepassword");
            var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}");
            var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "changepasword" } });
            target.ControllerContext = new HttpControllerContext(config, routeData, request);
            target.Request = request;
            target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;

            try
            {
                HttpResponseMessage actual = target.ChangePassword(user);
                Assert.IsTrue(false);
            }
            catch (Exception ex)
            {
                Assert.IsInstanceOfType(ex, typeof(HttpResponseException));
            }
        }