blob: 58b31d62c02a910992fcfb43b7209414296a22c7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 Christian Trutz
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Christian Trutz - initial API and implementation
*******************************************************************************/
package org.eclipse.egit.github.core.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Date;
import org.eclipse.egit.github.core.Issue;
import org.eclipse.egit.github.core.Label;
import org.eclipse.egit.github.core.Milestone;
import org.eclipse.egit.github.core.PullRequest;
import org.eclipse.egit.github.core.User;
import org.junit.Test;
/**
* Unit tests of {@link Issue}
*/
public class IssueTest {
/**
* Test default state of issue
*/
@Test
public void defaultState() {
Issue issue = new Issue();
assertNull(issue.getAssignee());
assertNull(issue.getBody());
assertNull(issue.getBodyHtml());
assertNull(issue.getBodyText());
assertNull(issue.getClosedAt());
assertEquals(0, issue.getComments());
assertNull(issue.getCreatedAt());
assertNull(issue.getHtmlUrl());
assertNull(issue.getLabels());
assertNull(issue.getMilestone());
assertEquals(0, issue.getNumber());
assertNull(issue.getPullRequest());
assertNull(issue.getState());
assertNull(issue.getTitle());
assertNull(issue.getUpdatedAt());
assertNull(issue.getUrl());
assertNull(issue.getUser());
assertNotNull(issue.toString());
assertEquals(0, issue.getId());
}
/**
* Test updating issue fields
*/
@Test
public void updateFields() {
Issue issue = new Issue();
User assignee = new User().setLogin("assignee");
assertEquals(assignee, issue.setAssignee(assignee).getAssignee());
assertEquals("body", issue.setBody("body").getBody());
assertEquals("<body>", issue.setBodyHtml("<body>").getBodyHtml());
assertEquals("text", issue.setBodyText("text").getBodyText());
assertEquals(new Date(1000), issue.setClosedAt(new Date(1000))
.getClosedAt());
assertEquals(5, issue.setComments(5).getComments());
assertEquals(new Date(2000), issue.setCreatedAt(new Date(2000))
.getCreatedAt());
assertEquals("html", issue.setHtmlUrl("html").getHtmlUrl());
assertEquals(new ArrayList<Label>(),
issue.setLabels(new ArrayList<Label>()).getLabels());
Milestone milestone = new Milestone().setNumber(50);
assertEquals(milestone, issue.setMilestone(milestone).getMilestone());
assertEquals(123, issue.setNumber(123).getNumber());
PullRequest pr = new PullRequest().setNumber(500);
assertEquals(pr, issue.setPullRequest(pr).getPullRequest());
assertEquals("state", issue.setState("state").getState());
assertEquals("title", issue.setTitle("title").getTitle());
assertEquals(new Date(3000), issue.setUpdatedAt(new Date(3000))
.getUpdatedAt());
assertEquals("url", issue.setUrl("url").getUrl());
User user = new User().setLogin("user");
assertEquals(user, issue.setUser(user).getUser());
assertNull(issue.setLabels(null).getLabels());
assertEquals(39, issue.setId(39).getId());
}
/**
* Test non-mutable created at date
*/
@Test
public void getCreatedAtReferenceMutableObject() {
Issue issue = new Issue();
issue.setCreatedAt(new Date(55555555));
issue.getCreatedAt().setTime(0);
assertTrue(issue.getCreatedAt().getTime() != 0);
}
/**
* Test non-mutable updated at date
*/
@Test
public void getUpdatedAtReferenceMutableObject() {
Issue issue = new Issue();
issue.setUpdatedAt(new Date(44444444));
issue.getUpdatedAt().setTime(0);
assertTrue(issue.getUpdatedAt().getTime() != 0);
}
/**
* Test non-mutable closed at date
*/
@Test
public void getClosedAtReferenceMutableObject() {
Issue issue = new Issue();
issue.setClosedAt(new Date(99999999));
issue.getClosedAt().setTime(0);
assertTrue(issue.getClosedAt().getTime() != 0);
}
}