diff options
author | Tomasz Zarna | 2014-05-23 14:40:15 +0000 |
---|---|---|
committer | Tomasz Zarna | 2014-05-23 14:43:55 +0000 |
commit | f9ef07f79ec5269dfcbc7ea6658cdca0f4fe2f67 (patch) | |
tree | 5828a3b06e4782f33b7aa55b49f96b2f53226307 /org.eclipse.mylyn.reviews.core.tests | |
parent | e9b092392c83685026e6a4d45f417d054dae419b (diff) | |
download | org.eclipse.mylyn.reviews-f9ef07f79ec5269dfcbc7ea6658cdca0f4fe2f67.tar.gz org.eclipse.mylyn.reviews-f9ef07f79ec5269dfcbc7ea6658cdca0f4fe2f67.tar.xz org.eclipse.mylyn.reviews-f9ef07f79ec5269dfcbc7ea6658cdca0f4fe2f67.zip |
433856: Comment#isMine can throw NPE when email is null
Change-Id: I7979e0983589b5a90a6e99cac274d1e8da47c62b
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=433856
Signed-off-by: Tomasz Zarna <tomasz.zarna@tasktop.com>
Diffstat (limited to 'org.eclipse.mylyn.reviews.core.tests')
-rw-r--r-- | org.eclipse.mylyn.reviews.core.tests/src/org/eclipse/mylyn/reviews/core/model/CommentContainerTest.java | 110 |
1 files changed, 94 insertions, 16 deletions
diff --git a/org.eclipse.mylyn.reviews.core.tests/src/org/eclipse/mylyn/reviews/core/model/CommentContainerTest.java b/org.eclipse.mylyn.reviews.core.tests/src/org/eclipse/mylyn/reviews/core/model/CommentContainerTest.java index 4c3096383..92449cb13 100644 --- a/org.eclipse.mylyn.reviews.core.tests/src/org/eclipse/mylyn/reviews/core/model/CommentContainerTest.java +++ b/org.eclipse.mylyn.reviews.core.tests/src/org/eclipse/mylyn/reviews/core/model/CommentContainerTest.java @@ -37,7 +37,7 @@ import org.junit.Test; * </ul> * </p> * - * @generated + * @generated NOT */ public class CommentContainerTest { @@ -219,8 +219,81 @@ public class CommentContainerTest { } @Test - public void testCommentIsMine() { - IRepository repos = ReviewsFactory.eINSTANCE.createRepository(); + public void testIsMineForRepositoryWithoutAccountAndCommentWithoutAuthor() { + IComment comment = createReviewWithComment(createRepository()); + + assertThat(comment.isMine(), is(false)); + } + + @Test + public void testIsMineForRepositoryAndCommentWithTheSameUser() { + IUser user = createUser(); + IRepository repo = createRepositoryWithAccount(user); + IComment comment = createReviewWithCommentAndAuthor(repo, user); + + assertThat(comment.isMine(), is(true)); + } + + //the following tests should be removed when https://bugs.eclipse.org/bugs/show_bug.cgi?id=418878 is fixed. + @Test + public void testIsMineForRepositoryAndCommentWithUsersHavingTheSameEmail() { + IUser user1 = createUser("foo@bar.com"); + IUser user2 = createUser("foo@bar.com"); + IRepository repo = createRepositoryWithAccount(user1); + IComment comment = createReviewWithCommentAndAuthor(repo, user2); + + assertThat(comment.isMine(), is(true)); + } + + @Test + public void testIsMineForRepositoryWithAccountAndCommentWithoutAuthor() { + IUser user = createUser("foo@bar.com"); + IRepository repo = createRepositoryWithAccount(user); + IComment comment = createReviewWithComment(repo); + + assertThat(comment.isMine(), is(false)); + } + + @Test + public void testIsMineForRepositoryAndCommentWithUsersHavingTheDifferentEmails() { + IUser user1 = createUser("foo@bar.com"); + IUser user2 = createUser("baz@bar.com"); + IRepository repo = createRepositoryWithAccount(user1); + IComment comment = createReviewWithCommentAndAuthor(repo, user2); + + assertThat(comment.isMine(), is(false)); + } + + @Test + public void testIsMineForRepositoryWithoutAccountAndCommentWithAuthor() { + IUser user = createUser("foo@bar.com"); + IRepository repo = createRepository(); + IComment comment = createReviewWithCommentAndAuthor(repo, user); + + assertThat(comment.isMine(), is(false)); + } + + @Test + public void testIsMineForRepositoryWithAccountAndNullEmailAndCommentWithAuthor() { + IUser user1 = createUser(null); + IUser user2 = createUser("baz@bar.com"); + IRepository repo = createRepositoryWithAccount(user1); + IComment comment = createReviewWithCommentAndAuthor(repo, user2); + + assertThat(comment.isMine(), is(false)); + } + + private static IRepository createRepository() { + return ReviewsFactory.eINSTANCE.createRepository(); + } + + private static IRepository createRepositoryWithAccount(IUser user) { + IRepository repo = createRepository(); + repo.setAccount(user); + return repo; + } + + private static IComment createReviewWithComment(IRepository repos) { IReview review = ReviewsFactory.eINSTANCE.createReview(); repos.getReviews().add(review); IReviewItemSet set = ReviewsFactory.eINSTANCE.createReviewItemSet(); @@ -229,18 +302,23 @@ public class CommentContainerTest { IComment comment = ReviewsFactory.eINSTANCE.createComment(); set.getItems().add(item); item.getComments().add(comment); - assertThat(comment.isMine(), is(false)); - IUser user = ReviewsFactory.eINSTANCE.createUser(); - repos.setAccount(user); + return comment; + } + + private static IComment createReviewWithCommentAndAuthor(IRepository repos, IUser user) { + IComment comment = createReviewWithComment(repos); comment.setAuthor(user); - assertThat(comment.isMine(), is(true)); - //the following tests should be removed when https://bugs.eclipse.org/bugs/show_bug.cgi?id=418878 is fixed. - IUser user2 = ReviewsFactory.eINSTANCE.createUser(); - comment.setAuthor(user2); - user.setEmail("foo@bar.com"); - user2.setEmail("foo@bar.com"); - assertThat(comment.isMine(), is(true)); - user2.setEmail("baz@bar.com"); - assertThat(comment.isMine(), is(false)); + return comment; + } + + private static IUser createUser() { + return ReviewsFactory.eINSTANCE.createUser(); } -} //ReviewItemTest + + private static IUser createUser(String email) { + IUser user = createUser(); + user.setEmail(email); + return user; + } + +} |