/******************************************************************************* * Copyright (C) 2012, Robin Stocker <robin@nibor.org> * * 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 *******************************************************************************/ package org.eclipse.egit.core.test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.Collection; import org.eclipse.egit.core.RevUtils; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; import org.junit.After; import org.junit.Before; import org.junit.Test; public class RevUtilsTest extends GitTestCase { private TestRepository testRepository; private Repository repository; @Override @Before public void setUp() throws Exception { super.setUp(); testRepository = new TestRepository(gitDir); repository = testRepository.getRepository(); } @Override @After public void tearDown() throws Exception { testRepository.dispose(); repository = null; super.tearDown(); } @Test public void isContainedInAnyRef() throws Exception { RevCommit first = testRepository.createInitialCommit("First commit"); testRepository.createBranch("refs/heads/master", "refs/heads/other"); assertFalse(isContainedInAnyRemoteRef(first)); testRepository.createBranch("refs/heads/master", "refs/remotes/origin/a"); assertTrue(isContainedInAnyRemoteRef(first)); RevCommit second = testRepository.commit("Second commit"); assertFalse(isContainedInAnyRemoteRef(second)); testRepository.createBranch("refs/heads/master", "refs/remotes/origin/b"); assertTrue(isContainedInAnyRemoteRef(second)); RevCommit third = testRepository.commit("Third commit"); testRepository.commit("Fourth commit"); testRepository.createBranch("refs/heads/master", "refs/remotes/origin/c"); assertTrue(isContainedInAnyRemoteRef(third)); } private boolean isContainedInAnyRemoteRef(RevCommit commit) throws IOException { Collection<Ref> remoteRefs = repository.getRefDatabase().getRefs(Constants.R_REMOTES).values(); return RevUtils.isContainedInAnyRef(repository, commit, remoteRefs); } }