Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Zarna2014-05-23 14:40:15 +0000
committerTomasz Zarna2014-05-23 14:43:55 +0000
commitf9ef07f79ec5269dfcbc7ea6658cdca0f4fe2f67 (patch)
tree5828a3b06e4782f33b7aa55b49f96b2f53226307 /org.eclipse.mylyn.reviews.core.tests
parente9b092392c83685026e6a4d45f417d054dae419b (diff)
downloadorg.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.java110
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;
+ }
+
+}

Back to the top