public void CreateShouldCallRepositoryTest() { StatusesRepositorySpy spy_repository = new StatusesRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); StatusesController target = new StatusesController(spy_repository, spy_checker); CreateTwitData arg = new CreateTwitData() { Content = "Twit content" }; spy_repository.CreateTweetResult = new Tweet() { Content = arg.Content, DateAndTime = DateTime.Now, Id = 20, UserId = 1 }; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/statuses/create"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "statuses" }, { "action", "create" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.Create(arg); Assert.AreEqual(arg.Content,spy_repository.CreateTweetContent); Assert.AreEqual(1, spy_repository.CreateTweetUserId); Assert.AreNotEqual(new DateTime(), spy_repository.CreateTweetDateTime); }
public void AllTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); List<User> expected = new List<User>(); expected.Add(new User() { Email = "*****@*****.**", FirstName = "First name", Id = 1, LastName = "Last name", Login = "******", Photo = null }); expected.Add(new User() { Email = "*****@*****.**", FirstName = "Ostap", Id = 2, LastName = "Bender", Login = "******", Photo = null }); spy_repository.GetAllUsersResult = expected; /* var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/1.0/users/all"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "all" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; */ List<User> actual = target.All(); Assert.AreEqual(expected, actual); }
public void SingleShouldReturnTwitTest() { StatusesRepositorySpy spy_repository = new StatusesRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); StatusesController target = new StatusesController(spy_repository, spy_checker); spy_repository.GetSingleTweetResult = new Tweet() { Content = "Content 1", DateAndTime = new DateTime(2012, 10, 20), Id = 10, UserId = 1 }; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/1.0/statuses/Single"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "statuses" }, { "action", "Single" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.Single(10); Assert.IsNotNull(actual); Assert.AreSame(spy_repository.GetSingleTweetResult, actual); }
public void MyTimelineShouldCallRepositoryTest() { StatusesRepositorySpy spy_repository = new StatusesRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); StatusesController target = new StatusesController(spy_repository, spy_checker); spy_repository.GetAllUserTweetsResult = new List<Tweet>(); spy_repository.GetAllUserTweetsResult.Add(new Tweet() { Content = "Content 1", DateAndTime = new DateTime(2012, 10, 20), Id = 10, UserId = 1 }); spy_repository.GetAllUserTweetsResult.Add(new Tweet() { Content = "Content 2", DateAndTime = new DateTime(2012, 10, 21), Id = 11, UserId = 1 }); var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/1.0/statuses/MyTimeline"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "statuses" }, { "action", "MyTimeline" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.MyTimeline(); Assert.AreEqual(1, spy_repository.GetAllUserTweetsUserId); }
public void ChangePasswordShouldCallRepositoryTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); 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; HttpResponseMessage actual = target.ChangePassword(user); Assert.IsTrue(spy_repository.ChangePasswordNewPassword == "new_password" && spy_repository.ChangePasswordOldPassword == "old_password" && spy_repository.ChangePasswordUser.Id == 1); }
public void UploadImageShouldCallRepositoryTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); byte[] fakeImage=new byte[] { 10, 11, 12 }; UploadImageData arg = new UploadImageData() { FileName = "image1.jpg", ImageType = "image/jpeg", ImageBuffer = fakeImage}; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/users/UploadImage"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "UploadImage" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.UploadImage(arg); bool successPassImage = true; if ((spy_repository.AddOrUpdatePhotoPhoto != null) && (spy_repository.AddOrUpdatePhotoPhoto.Length == fakeImage.Length)) { for (int ind = 0; ind < fakeImage.Length; ind++) { if (spy_repository.AddOrUpdatePhotoPhoto[ind] != fakeImage[ind]) { successPassImage = false; break; } } } else { successPassImage = false; } Assert.IsTrue(successPassImage && (spy_repository.AddOrUpdatePhotoUserId == 1)); }
public void UploadImageShouldReturnOKTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); byte[] fakeImage = new byte[] { 10, 11, 12 }; UploadImageData arg = new UploadImageData() { FileName = "image1.jpg", ImageType = "image/jpeg", ImageBuffer = fakeImage }; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/users/UploadImage"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "UploadImage" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.UploadImage(arg); Assert.AreEqual(HttpStatusCode.OK, actual.StatusCode); }
public void UnFollowShouldReturnOKTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/users/UnFollow"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "UnFollow" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.UnFollow(2); Assert.AreEqual(actual.StatusCode, HttpStatusCode.OK); }
public void UpdateShuldCallRepositoryTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); UserUpdateData userUpdateData = new UserUpdateData() { Email = "*****@*****.**", FirstName = "First name", LastName = "Last name" }; spy_repository.GetSingleUserResult = new User() { Id = 1, Login = "******" }; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/1.0/users/update"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "update" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.Update(userUpdateData); Assert.IsTrue (spy_repository.UpdateUserUser != null && spy_repository.UpdateUserUser.Email == userUpdateData.Email && spy_repository.UpdateUserUser.FirstName == userUpdateData.FirstName && spy_repository.UpdateUserUser.LastName == userUpdateData.LastName && spy_repository.UpdateUserUser.Id == 1); }
public void StatsShouldCallRepositoryyTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); spy_repository.GetCountReadersResult = 2; spy_repository.GetCountReadUsersResult = 3; spy_repository.GetCountTweetsByUserIdResult = 4; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/1.0/users/stats"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "stats" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.Stats(1); Assert.IsTrue (spy_repository.GetCountReadersUserId == 1 && spy_repository.GetCountReadUsersUserId == 1 && spy_repository.GetCountTweetsByUserIdUserId == 1 && actual != null && actual.CountReaders == 2 && actual.CountReadUsers == 3 && actual.CountTweetsByUser == 4); }
public void SingleShouldRiseNotFoundIfNotFoundTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); spy_repository.GetSingleUserResult = null; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/1.0/users/single"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "single" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; try { var actual = target.Single(10); Assert.IsTrue(false); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(HttpResponseException)); } }
public void SingleShouldCallRepositoryTest() { UserRepositorySpy spy_repository = new UserRepositorySpy(); CredentialsCheckerSpy_AlwaysPass spy_checker = new CredentialsCheckerSpy_AlwaysPass(); UsersController target = new UsersController(spy_repository, spy_checker); spy_repository.GetSingleUserResult = new User() { Id = 10, Login = "******" }; var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/api/1.0/users/single"); var route = config.Routes.MapHttpRoute("TestApi", "api/1.0/{controller}/{action}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "users" }, { "action", "single" } }); target.ControllerContext = new HttpControllerContext(config, routeData, request); target.Request = request; target.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var actual = target.Single(10); Assert.AreEqual(spy_repository.GetSingleUserId, actual.Id); }
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 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); }