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.

EmptyTreeIteratorTest.java 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * Copyright (C) 2008, 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.treewalk;
  11. import static org.junit.Assert.assertEquals;
  12. import static org.junit.Assert.assertFalse;
  13. import static org.junit.Assert.assertNotNull;
  14. import static org.junit.Assert.assertSame;
  15. import static org.junit.Assert.assertTrue;
  16. import org.eclipse.jgit.junit.RepositoryTestCase;
  17. import org.eclipse.jgit.lib.ObjectId;
  18. import org.eclipse.jgit.lib.ObjectReader;
  19. import org.junit.Test;
  20. public class EmptyTreeIteratorTest extends RepositoryTestCase {
  21. @Test
  22. public void testAtEOF() throws Exception {
  23. final EmptyTreeIterator etp = new EmptyTreeIterator();
  24. assertTrue(etp.first());
  25. assertTrue(etp.eof());
  26. }
  27. @Test
  28. public void testCreateSubtreeIterator() throws Exception {
  29. final EmptyTreeIterator etp = new EmptyTreeIterator();
  30. try (ObjectReader reader = db.newObjectReader()) {
  31. final AbstractTreeIterator sub = etp.createSubtreeIterator(reader);
  32. assertNotNull(sub);
  33. assertTrue(sub.first());
  34. assertTrue(sub.eof());
  35. assertTrue(sub instanceof EmptyTreeIterator);
  36. }
  37. }
  38. @Test
  39. public void testEntryObjectId() throws Exception {
  40. final EmptyTreeIterator etp = new EmptyTreeIterator();
  41. assertSame(ObjectId.zeroId(), etp.getEntryObjectId());
  42. assertNotNull(etp.idBuffer());
  43. assertEquals(0, etp.idOffset());
  44. assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
  45. }
  46. @Test
  47. public void testNextDoesNothing() throws Exception {
  48. final EmptyTreeIterator etp = new EmptyTreeIterator();
  49. etp.next(1);
  50. assertTrue(etp.first());
  51. assertTrue(etp.eof());
  52. assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
  53. etp.next(1);
  54. assertTrue(etp.first());
  55. assertTrue(etp.eof());
  56. assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
  57. }
  58. @Test
  59. public void testBackDoesNothing() throws Exception {
  60. final EmptyTreeIterator etp = new EmptyTreeIterator();
  61. etp.back(1);
  62. assertTrue(etp.first());
  63. assertTrue(etp.eof());
  64. assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
  65. etp.back(1);
  66. assertTrue(etp.first());
  67. assertTrue(etp.eof());
  68. assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
  69. }
  70. @Test
  71. public void testStopWalkCallsParent() throws Exception {
  72. final boolean called[] = new boolean[1];
  73. assertFalse(called[0]);
  74. final EmptyTreeIterator parent = new EmptyTreeIterator() {
  75. @Override
  76. public void stopWalk() {
  77. called[0] = true;
  78. }
  79. };
  80. try (ObjectReader reader = db.newObjectReader()) {
  81. parent.createSubtreeIterator(reader).stopWalk();
  82. }
  83. assertTrue(called[0]);
  84. }
  85. }