public void SetUp() { var hashedPass = LoginManager.GetHashedPass("already_exists", "123", 0); userWithEmail = new User("already_exists", hashedPass, "*****@*****.**", 0) { Id = 123 }; userWithoutEmail = new User("no_email", "222", string.Empty, 321) { Id = 321 }; repository = new FakeUserRepository(userWithEmail, userWithoutEmail); repository.Add(userWithEmail.Options); permissionContext = new FakePermissionContext(new UserWithPermissionsContract(userWithEmail, ContentLanguagePreference.Default)); stopForumSpamClient = new FakeStopForumSpamClient(); mailer = new FakeUserMessageMailer(); data = new UserQueries(repository, permissionContext, new FakeEntryLinkFactory(), stopForumSpamClient, mailer, new FakeUserIconFactory(), new FakeObjectCache()); softBannedIPs = new HostCollection(); request = new PasswordResetRequest(userWithEmail) { Id = Guid.NewGuid() }; repository.Add(request); }
public void SetUp() { userWithEmail = new User("already_exists", "123", "*****@*****.**", PasswordHashAlgorithms.Default) { Id = 123 }; userWithoutEmail = new User("no_email", "222", string.Empty, PasswordHashAlgorithms.Default) { Id = 321 }; repository = new FakeUserRepository(userWithEmail, userWithoutEmail); repository.Add(userWithEmail.Options); permissionContext = new FakePermissionContext(new UserWithPermissionsContract(userWithEmail, ContentLanguagePreference.Default)); stopForumSpamClient = new FakeStopForumSpamClient(); mailer = new FakeUserMessageMailer(); data = new UserQueries(repository, permissionContext, new FakeEntryLinkFactory(), stopForumSpamClient, mailer, new FakeUserIconFactory(), null, new InMemoryImagePersister(), new FakeObjectCache(), new Model.Service.BrandableStrings.BrandableStringsManager(), new EnumTranslations()); softBannedIPs = new HostCollection(); request = new PasswordResetRequest(userWithEmail) { Id = Guid.NewGuid() }; repository.Add(request); }
public void GetRatingsByGenre() { var fakeTag = new Tag("temp") { Name = null }; // Need to fake it because NHibernate doesn't work with ?: var vocarock = new Tag("Vocarock", Tag.CommonCategory_Genres) { Parent = fakeTag, AliasedTo = fakeTag }; var electronic = new Tag("Electronic", Tag.CommonCategory_Genres) { Parent = fakeTag, AliasedTo = fakeTag }; var trance = new Tag("Trance", Tag.CommonCategory_Genres) { Parent = electronic, AliasedTo = fakeTag }; repository.Add(vocarock, electronic, trance); var song1 = CreateEntry.Song(name: "Nebula"); var song2 = CreateEntry.Song(name: "Anger"); var song3 = CreateEntry.Song(name: "DYE"); repository.Add(song1, song2, song3); userWithEmail.AddSongToFavorites(song1, SongVoteRating.Favorite); userWithEmail.AddSongToFavorites(song2, SongVoteRating.Favorite); userWithEmail.AddSongToFavorites(song3, SongVoteRating.Favorite); var usage1 = CreateEntry.SongTagUsage(song1, vocarock, userWithEmail); var usage2 = CreateEntry.SongTagUsage(song1, trance, userWithEmail); var usage3 = CreateEntry.SongTagUsage(song2, vocarock, userWithEmail); var usage4 = CreateEntry.SongTagUsage(song2, trance, userWithEmail); var usage5 = CreateEntry.SongTagUsage(song3, trance, userWithEmail); repository.Add(usage1, usage2, usage3, usage4, usage5); var result = data.GetRatingsByGenre(userWithEmail.Id); Assert.AreEqual(2, result.Length, "Number of results"); var first = result[0]; Assert.AreEqual(electronic.Name, first.Item1, "First result is Electronic"); Assert.AreEqual(3, first.Item2, "Votes for Electronic"); var second = result[1]; Assert.AreEqual(vocarock.Name, second.Item1, "First result is Vocarock"); Assert.AreEqual(2, second.Item2, "Votes for Vocarock"); }
public void GetRatingsByGenre() { var fakeTagMock = new Mock <Tag>(); var fakeTag = fakeTagMock.Object; var vocarock = new Tag("Vocarock", TagCommonCategoryNames.Genres) { Parent = fakeTag }; var electronic = new Tag("Electronic", TagCommonCategoryNames.Genres) { Parent = fakeTag }; var trance = new Tag("Trance", TagCommonCategoryNames.Genres) { Parent = electronic }; repository.Save(vocarock, electronic, trance); repository.SaveNames(vocarock, electronic, trance); var song1 = CreateEntry.Song(name: "Nebula"); var song2 = CreateEntry.Song(name: "Anger"); var song3 = CreateEntry.Song(name: "DYE"); repository.Add(song1, song2, song3); userWithEmail.AddSongToFavorites(song1, SongVoteRating.Favorite); userWithEmail.AddSongToFavorites(song2, SongVoteRating.Favorite); userWithEmail.AddSongToFavorites(song3, SongVoteRating.Favorite); var usage1 = CreateEntry.SongTagUsage(song1, vocarock, userWithEmail); var usage2 = CreateEntry.SongTagUsage(song1, trance, userWithEmail); var usage3 = CreateEntry.SongTagUsage(song2, vocarock, userWithEmail); var usage4 = CreateEntry.SongTagUsage(song2, trance, userWithEmail); var usage5 = CreateEntry.SongTagUsage(song3, trance, userWithEmail); repository.Add(usage1, usage2, usage3, usage4, usage5); var result = data.GetRatingsByGenre(userWithEmail.Id); Assert.AreEqual(2, result.Length, "Number of results"); var first = result[0]; Assert.AreEqual(electronic.DefaultName, first.Item1, "First result is Electronic"); Assert.AreEqual(3, first.Item2, "Votes for Electronic"); var second = result[1]; Assert.AreEqual(vocarock.DefaultName, second.Item1, "First result is Vocarock"); Assert.AreEqual(2, second.Item2, "Votes for Vocarock"); }
public void CommentPost_WhenSessionKeyIsNotCorrect_ShouldReturnStatusCode400() { var user = new User() { DisplayName = "JavaScript", Username = "******", AuthCode = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e", SessionKey = "1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH" }; var fakeUserRepo = new FakeUserRepository(); fakeUserRepo.Add(user); var post = new Post() { PostDate = DateTime.Now, Text = "Some text", Title = "SomeTitle", User = user }; var fakePostRepo = new FakePostRepository(); fakePostRepo.Add(post); var server = new InMemoryHttpServer <Post>("http://localhost/", fakePostRepo); var response = server.CreateGetRequest("api/posts?sessionKey=1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH&tags"); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void Create_WhenPostTextIsNull_ShouldReturnStatusCode400() { var fakeUserRepo = new FakeUserRepository(); var user = new User() { DisplayName = "JavaScript", Username = "******", AuthCode = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e", SessionKey = "1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH" }; fakeUserRepo.Add(user); var fakePostRepo = new FakePostRepository(); var server = new InMemoryHttpServer <Post>("http://localhost/", fakePostRepo); var newPost = new { title = "some title", tags = new string[] { "asd", "qwe" } }; var response = server.CreatePostRequest("api/posts?sessionKey=1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH", newPost); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void GetByTags_WhenTagsAreNotCorrect_ShouldReturnNoContent() { var user = new User() { DisplayName = "JavaScript", Username = "******", AuthCode = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e", SessionKey = "1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH" }; var fakeUserRepo = new FakeUserRepository(); fakeUserRepo.Add(user); var post = new Post() { PostDate = DateTime.Now, Text = "Some text", Title = "SomeTitle", User = user }; var fakePostRepo = new FakePostRepository(); fakePostRepo.Add(post); var tags = new List <Tag>() { new Tag() { Name = "c#", Posts = new List <Post>() { post } }, new Tag() { Name = "web", Posts = new List <Post>() { post } }, }; var fakeTagRepo = new FakeTagRepository(); fakeTagRepo.Add(tags[0]); fakeTagRepo.Add(tags[1]); var server = new InMemoryHttpServer <Post>("http://localhost/", fakePostRepo); var response = server.CreateGetRequest("api/posts?sessionKey=1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH&tags=js"); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNotNull(response.Content); }
public void Login_WhenUserIsValid_ShouldLoginInDatabase() { var fakeRepo = new FakeUserRepository(); var user = new User() { Username = "******", AuthCode = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e" }; fakeRepo.Add(user); var server = new InMemoryHttpServer <User>("http://localhost/", fakeRepo); var response = server.CreatePostRequest("api/users/login", user); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNotNull(response.Content); }
public void Logout_WhenSessionKeyIsNotValid_ShouldReturnStatusCode400() { var fakeRepo = new FakeUserRepository(); var user = new User() { Username = "******", AuthCode = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e", SessionKey = "1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH" }; fakeRepo.Add(user); var server = new InMemoryHttpServer <User>("http://localhost/", fakeRepo); var response = server.CreatePutRequest("api/users/logout?sessionKey=stupidKey", new { }); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); Assert.IsNotNull(response.Content); }
public void Register_WhenAuthCodeIsTooLong_ShouldReturnStatusCode400() { var fakeRepo = new FakeUserRepository(); var server = new InMemoryHttpServer <User>("http://localhost/", fakeRepo); var user = new User() { Username = "******", DisplayName = "Valid Display Name", AuthCode = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e" }; fakeRepo.Add(user); var response = server.CreatePostRequest("api/users/register", user); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); Assert.AreEqual(2, fakeRepo.Entities.Count); // I put one user in the repository so that the ids begin from 1 (the first user is dummy) }