/******************************************************************************* * 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 static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.eclipse.egit.github.core.Repository; import org.eclipse.egit.github.core.RepositoryId; import org.eclipse.egit.github.core.User; import org.eclipse.egit.github.core.service.RepositoryService; import org.junit.Ignore; import org.junit.Test; /** * Live repository test */ public class RepositoryTest extends LiveTest { /** * Test fetching a repository * * @throws IOException */ @Test public void fetchRepositories() throws IOException { RepositoryService service = new RepositoryService(client); List<Repository> repos = service.getRepositories("defunkt"); assertNotNull(repos); assertFalse(repos.isEmpty()); for (Repository repo : repos) { assertNotNull(repo); assertNotNull(repo.getName()); assertNotNull(repo.getOwner()); assertNotNull(repo.getUrl()); assertNotNull(repo.getCreatedAt()); assertTrue(repo.getSize() >= 0); assertTrue(repo.getForks() >= 0); assertTrue(repo.getOpenIssues() >= 0); assertTrue(repo.getWatchers() >= 0); } } /** * Test creating a repository * * @throws IOException */ @Test @Ignore public void createRepository() throws IOException { assertNotNull("Client user is required", client.getUser()); RepositoryService service = new RepositoryService(client); Repository repository = new Repository(); repository.setOwner(new User().setLogin(client.getUser())); repository.setName("test-create-" + System.currentTimeMillis()); repository.setPrivate(true); Repository created = service.createRepository(repository); assertNotNull(created); assertNotSame(repository, created); assertTrue(created.isPrivate()); assertEquals(repository.getOwner(), created.getOwner()); assertEquals(repository.getName(), created.getName()); } /** * Test forking a repository * * @throws Exception */ @Test @Ignore public void forkRepository() throws Exception { assertNotNull("Client user is required", client.getUser()); RepositoryService service = new RepositoryService(client); service.forkRepository(new RepositoryId(client.getUser(), "resque")); } /** * Test fetching forks of a repository * * @throws IOException */ @Test public void fetchForks() throws IOException { RepositoryService service = new RepositoryService(client); List<Repository> repos = service.getForks(new RepositoryId("defunkt", "resque")); assertNotNull(repos); assertFalse(repos.isEmpty()); for (Repository repo : repos) { assertNotNull(repo); assertTrue(repo.isFork()); } } /** * Get languages used in a repository * * @throws IOException */ @Test public void getLanguages() throws IOException { RepositoryService service = new RepositoryService(client); Map<String, Long> languages = service.getLanguages(new RepositoryId( "defunkt", "resque")); assertNotNull(languages); assertFalse(languages.isEmpty()); for (Entry<String, Long> language : languages.entrySet()) { assertNotNull(language.getKey()); assertFalse(language.getKey().length() == 0); assertTrue(language.getValue() > 0); } } }