]> source.dussan.org Git - jgit.git/commitdiff
Add test for RefUpdate delete without HEAD 69/12269/2
authorRobin Stocker <robin@nibor.org>
Sat, 27 Apr 2013 11:30:11 +0000 (13:30 +0200)
committerGerrit Code Review @ Eclipse.org <gerrit@eclipse.org>
Fri, 3 May 2013 13:18:09 +0000 (09:18 -0400)
Bug: 406722
Change-Id: I555fb366ee64d885de2a71a67cf00833f4c62561

org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefUpdateTest.java

index 7388dce23794fc8545e9050fdfafdab463e345c4..21df179ad85c3c3d5a54d77277eb36d1461ecade 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2008, Charles O'Farrell <charleso@charleso.org>
  * Copyright (C) 2009-2010, Google Inc.
- * Copyright (C) 2008-2009, Robin Rosenberg <robin.rosenberg@dewire.com>
+ * Copyright (C) 2008-2013, Robin Rosenberg <robin.rosenberg@dewire.com>
  * and other copyright owners as documented in the project's IP log.
  *
  * This program and the accompanying materials are made available
@@ -283,6 +283,21 @@ public class RefUpdateTest extends SampleDataRepositoryTestCase {
                delete(ref, Result.FORCED);
        }
 
+       @Test
+       public void testDeleteWithoutHead() throws IOException {
+               // Prepare repository without HEAD
+               RefUpdate refUpdate = db.updateRef(Constants.HEAD, true);
+               refUpdate.setForceUpdate(true);
+               refUpdate.setNewObjectId(ObjectId.zeroId());
+               Result updateResult = refUpdate.update();
+               assertEquals(Result.FORCED, updateResult);
+               Result deleteHeadResult = db.updateRef(Constants.HEAD).delete();
+               assertEquals(Result.NO_CHANGE, deleteHeadResult);
+
+               // Any result is ok as long as it's not an NPE
+               db.updateRef(Constants.R_HEADS + "master").delete();
+       }
+
        @Test
        public void testRefKeySameAsName() {
                Map<String, Ref> allRefs = db.getAllRefs();