/* Copyright (c) 2013 Boundless and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Distribution License v1.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/org/documents/edl-v10.html * * Contributors: * Johnathan Garrett (LMN Solutions) - initial implementation */ package org.locationtech.geogig.test.integration; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.locationtech.geogig.api.Ref; import org.locationtech.geogig.api.porcelain.BranchCreateOp; import org.locationtech.geogig.api.porcelain.BranchListOp; import org.locationtech.geogig.api.porcelain.CheckoutOp; import org.locationtech.geogig.api.porcelain.CloneOp; import org.locationtech.geogig.api.porcelain.CommitOp; import org.locationtech.geogig.remote.RemoteRepositoryTestCase; import com.google.common.collect.ImmutableList; public class BranchListOpTest extends RemoteRepositoryTestCase { @Override protected void setUpInternal() throws Exception { // Commit several features to the remote insertAndAdd(remoteGeogig.geogig, points1); remoteGeogig.geogig.command(CommitOp.class).call(); // Create and checkout branch1 remoteGeogig.geogig.command(BranchCreateOp.class).setAutoCheckout(true).setName("Branch1") .call(); // Commit some changes to branch1 insertAndAdd(remoteGeogig.geogig, points2); remoteGeogig.geogig.command(CommitOp.class).call(); insertAndAdd(remoteGeogig.geogig, points3); remoteGeogig.geogig.command(CommitOp.class).call(); // Checkout master and commit some changes remoteGeogig.geogig.command(CheckoutOp.class).setSource("master").call(); insertAndAdd(remoteGeogig.geogig, lines1); remoteGeogig.geogig.command(CommitOp.class).call(); insertAndAdd(remoteGeogig.geogig, lines2); remoteGeogig.geogig.command(CommitOp.class).call(); // clone from the remote CloneOp clone = clone(); clone.setRepositoryURL(remoteGeogig.envHome.getCanonicalPath()).setBranch("Branch1").call(); } @Test public void testBranchListOp() throws Exception { ImmutableList<Ref> branches = remoteGeogig.geogig.command(BranchListOp.class) .setLocal(true).setRemotes(false).call(); assertEquals(Ref.HEADS_PREFIX + "Branch1", branches.get(0).getName()); assertEquals(Ref.HEADS_PREFIX + "master", branches.get(1).getName()); } @Test public void testRemoteListing() throws Exception { ImmutableList<Ref> branches = localGeogig.geogig.command(BranchListOp.class).setLocal(true) .setRemotes(true).call(); assertEquals(Ref.HEADS_PREFIX + "Branch1", branches.get(0).getName()); assertEquals(Ref.HEADS_PREFIX + "master", branches.get(1).getName()); assertEquals(Ref.REMOTES_PREFIX + "origin/Branch1", branches.get(2).getName()); assertEquals(Ref.REMOTES_PREFIX + "origin/HEAD", branches.get(3).getName()); assertEquals(Ref.REMOTES_PREFIX + "origin/master", branches.get(4).getName()); } }