blob: 265cf10484aeba6f4b06b2711a9fc1a28166cd5c [file] [log] [blame]
/******************************************************************************
* 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;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.Date;
import org.eclipse.egit.github.core.Repository;
import org.eclipse.egit.github.core.User;
import org.junit.Test;
/**
* Unit tests of {@link Repository}
*/
public class RepositoryTest {
/**
* Test default state of repository
*/
@Test
public void defaultState() {
Repository repo = new Repository();
assertNull(repo.getCloneUrl());
assertNull(repo.getCreatedAt());
assertNull(repo.getDescription());
assertEquals(0, repo.getForks());
assertNull(repo.getGitUrl());
assertNull(repo.getHomepage());
assertNull(repo.getHtmlUrl());
assertNull(repo.getLanguage());
assertNull(repo.getMasterBranch());
assertNull(repo.getMirrorUrl());
assertNull(repo.getName());
assertEquals(0, repo.getOpenIssues());
assertNull(repo.getOwner());
assertNull(repo.getParent());
assertNull(repo.getPushedAt());
assertEquals(0, repo.getSize());
assertNull(repo.getSource());
assertNull(repo.getSshUrl());
assertNull(repo.getSvnUrl());
assertNull(repo.getUrl());
assertEquals(0, repo.getWatchers());
assertFalse(repo.isFork());
assertFalse(repo.isHasDownloads());
assertFalse(repo.isHasIssues());
assertFalse(repo.isHasWiki());
assertFalse(repo.isPrivate());
assertEquals(0, repo.getId());
assertNull(repo.getUpdatedAt());
}
/**
* Test updating fields of repository
*/
@Test
public void updateFields() {
Repository repo = new Repository();
assertEquals("clone://", repo.setCloneUrl("clone://").getCloneUrl());
assertEquals(new Date(2500), repo.setCreatedAt(new Date(2500))
.getCreatedAt());
assertEquals("a repo", repo.setDescription("a repo").getDescription());
assertEquals(10, repo.setForks(10).getForks());
assertEquals("git://", repo.setGitUrl("git://").getGitUrl());
assertEquals("home", repo.setHomepage("home").getHomepage());
assertEquals("html", repo.setHtmlUrl("html").getHtmlUrl());
assertEquals("java", repo.setLanguage("java").getLanguage());
assertEquals("master", repo.setMasterBranch("master").getMasterBranch());
assertEquals("project", repo.setName("project").getName());
assertEquals(20, repo.setOpenIssues(20).getOpenIssues());
User owner = new User().setLogin("owner");
assertEquals(owner, repo.setOwner(owner).getOwner());
Repository parent = new Repository().setName("parent");
assertEquals(parent, repo.setParent(parent).getParent());
assertEquals(new Date(3000), repo.setPushedAt(new Date(3000))
.getPushedAt());
assertEquals(100, repo.setSize(100).getSize());
Repository source = new Repository().setName("source");
assertEquals(source, repo.setSource(source).getSource());
assertEquals("ssh://", repo.setSshUrl("ssh://").getSshUrl());
assertEquals("svn://", repo.setSvnUrl("svn://").getSvnUrl());
assertEquals("url://", repo.setUrl("url://").getUrl());
assertEquals(200, repo.setWatchers(200).getWatchers());
assertTrue(repo.setFork(true).isFork());
assertTrue(repo.setHasDownloads(true).isHasDownloads());
assertTrue(repo.setHasIssues(true).isHasIssues());
assertTrue(repo.setHasWiki(true).isHasWiki());
assertTrue(repo.setPrivate(true).isPrivate());
assertEquals("mirror", repo.setMirrorUrl("mirror").getMirrorUrl());
assertEquals(14, repo.setId(14).getId());
assertEquals(new Date(50000), repo.setUpdatedAt(new Date(50000))
.getUpdatedAt());
}
/**
* Generate id with null name
*/
@Test
public void generateIdNullName() {
Repository repo = new Repository();
repo.setName(null);
repo.setOwner(new User().setLogin("tuser"));
assertNull(repo.generateId());
}
/**
* Generate id with empty name
*/
@Test
public void generateIdEmptyName() {
Repository repo = new Repository();
repo.setName("");
repo.setOwner(new User().setLogin("tuser"));
assertNull(repo.generateId());
}
/**
* Generate id with null owner
*/
@Test
public void generateIdNullOwner() {
Repository repo = new Repository();
repo.setName("myproject");
assertNull(repo.generateId());
}
/**
* Generate id with null owner login
*/
@Test
public void generateIdNullOwnerLogin() {
Repository repo = new Repository();
repo.setName("myproject");
repo.setOwner(new User().setLogin(null));
assertNull(repo.generateId());
}
/**
* Generate id with empty owner login
*/
@Test
public void generateIdEmptyOwnerLogin() {
Repository repo = new Repository();
repo.setName("myproject");
repo.setOwner(new User().setLogin(""));
assertNull(repo.generateId());
}
/**
* Generate id for repository
*/
@Test
public void generateId() {
Repository repo = new Repository();
repo.setName("myproject");
repo.setOwner(new User().setLogin("tuser"));
assertEquals("tuser/myproject", repo.generateId());
}
}