Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ObjectIdRefTest.java 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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 static org.junit.Assert.fail;
  17. import java.util.Arrays;
  18. import java.util.List;
  19. import org.junit.Test;
  20. public class ObjectIdRefTest {
  21. private static final ObjectId ID_A = ObjectId
  22. .fromString("41eb0d88f833b558bddeb269b7ab77399cdf98ed");
  23. private static final ObjectId ID_B = ObjectId
  24. .fromString("698dd0b8d0c299f080559a1cffc7fe029479a408");
  25. private static final String name = "refs/heads/a.test.ref";
  26. @Test
  27. public void testConstructor_PeeledStatusNotKnown() {
  28. ObjectIdRef r;
  29. r = new ObjectIdRef.Unpeeled(Ref.Storage.LOOSE, name, ID_A);
  30. assertSame(Ref.Storage.LOOSE, r.getStorage());
  31. assertSame(name, r.getName());
  32. assertSame(ID_A, r.getObjectId());
  33. assertFalse("not peeled", r.isPeeled());
  34. assertNull("no peel id", r.getPeeledObjectId());
  35. assertSame("leaf is this", r, r.getLeaf());
  36. assertSame("target is this", r, r.getTarget());
  37. assertFalse("not symbolic", r.isSymbolic());
  38. r = new ObjectIdRef.Unpeeled(Ref.Storage.PACKED, name, ID_A);
  39. assertSame(Ref.Storage.PACKED, r.getStorage());
  40. r = new ObjectIdRef.Unpeeled(Ref.Storage.LOOSE_PACKED, name, ID_A);
  41. assertSame(Ref.Storage.LOOSE_PACKED, r.getStorage());
  42. r = new ObjectIdRef.Unpeeled(Ref.Storage.NEW, name, null);
  43. assertSame(Ref.Storage.NEW, r.getStorage());
  44. assertSame(name, r.getName());
  45. assertNull("no id on new ref", r.getObjectId());
  46. assertFalse("not peeled", r.isPeeled());
  47. assertNull("no peel id", r.getPeeledObjectId());
  48. assertSame("leaf is this", r, r.getLeaf());
  49. assertSame("target is this", r, r.getTarget());
  50. assertFalse("not symbolic", r.isSymbolic());
  51. }
  52. @Test
  53. public void testConstructor_Peeled() {
  54. ObjectIdRef r;
  55. r = new ObjectIdRef.Unpeeled(Ref.Storage.LOOSE, name, ID_A);
  56. assertSame(Ref.Storage.LOOSE, r.getStorage());
  57. assertSame(name, r.getName());
  58. assertSame(ID_A, r.getObjectId());
  59. assertFalse("not peeled", r.isPeeled());
  60. assertNull("no peel id", r.getPeeledObjectId());
  61. assertSame("leaf is this", r, r.getLeaf());
  62. assertSame("target is this", r, r.getTarget());
  63. assertFalse("not symbolic", r.isSymbolic());
  64. r = new ObjectIdRef.PeeledNonTag(Ref.Storage.LOOSE, name, ID_A);
  65. assertTrue("is peeled", r.isPeeled());
  66. assertNull("no peel id", r.getPeeledObjectId());
  67. r = new ObjectIdRef.PeeledTag(Ref.Storage.LOOSE, name, ID_A, ID_B);
  68. assertTrue("is peeled", r.isPeeled());
  69. assertSame(ID_B, r.getPeeledObjectId());
  70. }
  71. @Test
  72. public void testUpdateIndex() {
  73. ObjectIdRef r;
  74. r = new ObjectIdRef.Unpeeled(Ref.Storage.LOOSE, name, ID_A, 3);
  75. assertTrue(r.getUpdateIndex() == 3);
  76. r = new ObjectIdRef.PeeledTag(Ref.Storage.LOOSE, name, ID_A, ID_B, 4);
  77. assertTrue(r.getUpdateIndex() == 4);
  78. r = new ObjectIdRef.PeeledNonTag(Ref.Storage.LOOSE, name, ID_A, 5);
  79. assertTrue(r.getUpdateIndex() == 5);
  80. }
  81. @Test
  82. public void testUpdateIndexNotSet() {
  83. List<ObjectIdRef> r = Arrays.asList(
  84. new ObjectIdRef.Unpeeled(Ref.Storage.LOOSE, name, ID_A),
  85. new ObjectIdRef.PeeledTag(Ref.Storage.LOOSE, name, ID_A, ID_B),
  86. new ObjectIdRef.PeeledNonTag(Ref.Storage.LOOSE, name, ID_A));
  87. for (ObjectIdRef ref : r) {
  88. try {
  89. ref.getUpdateIndex();
  90. fail("Update index wasn't set. It must throw");
  91. } catch (UnsupportedOperationException u) {
  92. // Ok
  93. }
  94. }
  95. }
  96. @Test
  97. public void testToString() {
  98. ObjectIdRef r;
  99. r = new ObjectIdRef.Unpeeled(Ref.Storage.LOOSE, name, ID_A);
  100. assertEquals("Ref[" + name + "=" + ID_A.name() + "(-1)]",
  101. r.toString());
  102. }
  103. }