You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SymbolicRefTest.java 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. /*
  2. * Copyright (C) 2010, Google Inc. and others
  3. *
  4. * This program and the accompanying materials are made available under the
  5. * terms of the Eclipse Distribution License v. 1.0 which is available at
  6. * https://www.eclipse.org/org/documents/edl-v10.php.
  7. *
  8. * SPDX-License-Identifier: BSD-3-Clause
  9. */
  10. package org.eclipse.jgit.lib;
  11. import static org.junit.Assert.assertEquals;
  12. import static org.junit.Assert.assertFalse;
  13. import static org.junit.Assert.assertNull;
  14. import static org.junit.Assert.assertSame;
  15. import static org.junit.Assert.assertTrue;
  16. import org.junit.Test;
  17. public class SymbolicRefTest {
  18. private static final ObjectId ID_A = ObjectId
  19. .fromString("41eb0d88f833b558bddeb269b7ab77399cdf98ed");
  20. private static final ObjectId ID_B = ObjectId
  21. .fromString("698dd0b8d0c299f080559a1cffc7fe029479a408");
  22. private static final String targetName = "refs/heads/a.test.ref";
  23. private static final String name = "refs/remotes/origin/HEAD";
  24. @Test
  25. public void testConstructor() {
  26. Ref t;
  27. SymbolicRef r;
  28. t = new ObjectIdRef.Unpeeled(Ref.Storage.NEW, targetName, null);
  29. r = new SymbolicRef(name, t, 1);
  30. assertSame(Ref.Storage.LOOSE, r.getStorage());
  31. assertSame(name, r.getName());
  32. assertNull("no id on new ref", r.getObjectId());
  33. assertFalse("not peeled", r.isPeeled());
  34. assertNull("no peel id", r.getPeeledObjectId());
  35. assertSame("leaf is t", t, r.getLeaf());
  36. assertSame("target is t", t, r.getTarget());
  37. assertTrue("is symbolic", r.isSymbolic());
  38. assertTrue("holds update index", r.getUpdateIndex() == 1);
  39. t = new ObjectIdRef.Unpeeled(Ref.Storage.PACKED, targetName, ID_A);
  40. r = new SymbolicRef(name, t, 2);
  41. assertSame(Ref.Storage.LOOSE, r.getStorage());
  42. assertSame(name, r.getName());
  43. assertSame(ID_A, r.getObjectId());
  44. assertFalse("not peeled", r.isPeeled());
  45. assertNull("no peel id", r.getPeeledObjectId());
  46. assertSame("leaf is t", t, r.getLeaf());
  47. assertSame("target is t", t, r.getTarget());
  48. assertTrue("is symbolic", r.isSymbolic());
  49. assertTrue("holds update index", r.getUpdateIndex() == 2);
  50. }
  51. @Test
  52. public void testLeaf() {
  53. Ref a;
  54. SymbolicRef b, c, d;
  55. a = new ObjectIdRef.PeeledTag(Ref.Storage.PACKED, targetName, ID_A, ID_B);
  56. b = new SymbolicRef("B", a);
  57. c = new SymbolicRef("C", b);
  58. d = new SymbolicRef("D", c);
  59. assertSame(c, d.getTarget());
  60. assertSame(b, c.getTarget());
  61. assertSame(a, b.getTarget());
  62. assertSame(a, d.getLeaf());
  63. assertSame(a, c.getLeaf());
  64. assertSame(a, b.getLeaf());
  65. assertSame(a, a.getLeaf());
  66. assertSame(ID_A, d.getObjectId());
  67. assertSame(ID_A, c.getObjectId());
  68. assertSame(ID_A, b.getObjectId());
  69. assertTrue(d.isPeeled());
  70. assertTrue(c.isPeeled());
  71. assertTrue(b.isPeeled());
  72. assertSame(ID_B, d.getPeeledObjectId());
  73. assertSame(ID_B, c.getPeeledObjectId());
  74. assertSame(ID_B, b.getPeeledObjectId());
  75. }
  76. @Test
  77. public void testToString() {
  78. Ref a;
  79. SymbolicRef b, c, d;
  80. a = new ObjectIdRef.PeeledTag(Ref.Storage.PACKED, targetName, ID_A, ID_B);
  81. b = new SymbolicRef("B", a);
  82. c = new SymbolicRef("C", b);
  83. d = new SymbolicRef("D", c);
  84. assertEquals("SymbolicRef[D -> C -> B -> " + targetName + "="
  85. + ID_A.name() + "(-1)]", d.toString());
  86. }
  87. }