/******************************************************************************
* Copyright (c) 2011 GitHub Inc.
* 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:
* Kevin Sawicki (GitHub Inc.) - initial API and implementation
*****************************************************************************/
package org.eclipse.egit.github.core.tests.live;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.eclipse.egit.github.core.CommitComment;
import org.eclipse.egit.github.core.RepositoryCommit;
import org.eclipse.egit.github.core.RepositoryId;
import org.eclipse.egit.github.core.client.PageIterator;
import org.eclipse.egit.github.core.service.CommitService;
import org.junit.Test;
/**
* Unit tests of {@link CommitService}
*/
public class CommitTest extends LiveTest {
/**
* Test paging commits
*
* @throws Exception
*/
@Test
public void pageCommits() throws Exception {
CommitService service = new CommitService(client);
RepositoryId repo = RepositoryId.create("defunkt", "mustache");
PageIterator<RepositoryCommit> commits = service.pageCommits(repo, 2);
Set<String> shas = new HashSet<String>();
int pages = 0;
for (Collection<RepositoryCommit> page : commits) {
assertNotNull(page);
assertEquals(2, page.size());
for (RepositoryCommit commit : page) {
assertNotNull(commit);
assertNotNull(commit.getSha());
assertFalse(shas.contains(commit.getSha()));
shas.add(commit.getSha());
assertNotNull(commit.getCommit());
}
pages++;
if (pages == 3)
break;
}
}
/**
* Test getting comments for a commit
*
* @throws Exception
*/
@Test
public void getComments() throws Exception {
CommitService service = new CommitService(client);
RepositoryId repo = RepositoryId.create("defunkt", "mustache");
String commit = "8118091cbad66d7a4d504f65964c62629a4fd064";
List<CommitComment> comments = service.getComments(repo, commit);
assertNotNull(comments);
assertFalse(comments.isEmpty());
for (CommitComment comment : comments) {
assertNotNull(comment);
assertNotNull(comment.getBody());
assertEquals(commit, comment.getCommitId());
assertNotNull(comment.getCreatedAt());
assertNotNull(comment.getUpdatedAt());
assertNotNull(comment.getUrl());
assertNotNull(comment.getUser());
CommitComment fetched = service.getComment(repo, comment.getId());
assertEquals(comment.getId(), fetched.getId());
assertEquals(comment.getUrl(), fetched.getUrl());
assertEquals(comment.getBody(), fetched.getBody());
}
}
/**
* Test getting commit by SHA-1
*
* @throws Exception
*/
@Test
public void getCommit() throws Exception {
CommitService service = new CommitService(client);
RepositoryId repo = RepositoryId.create("defunkt", "mustache");
String id = "8118091cbad66d7a4d504f65964c62629a4fd064";
RepositoryCommit commit = service.getCommit(repo, id);
assertNotNull(commit);
assertEquals(id, commit.getSha());
assertNotNull(commit.getAuthor());
assertNotNull(commit.getCommitter());
assertNotNull(commit.getCommit());
assertNotNull(commit.getUrl());
assertNotNull(commit.getParents());
assertFalse(commit.getParents().isEmpty());
}
}