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.

PatchIdDiffFormatterTest.java 3.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. * Copyright (C) 2011, Stefan Lay <stefan.lay@.com> 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.diff;
  11. import static org.junit.Assert.assertEquals;
  12. import java.io.File;
  13. import org.eclipse.jgit.api.Git;
  14. import org.eclipse.jgit.dircache.DirCacheIterator;
  15. import org.eclipse.jgit.junit.RepositoryTestCase;
  16. import org.eclipse.jgit.treewalk.FileTreeIterator;
  17. import org.eclipse.jgit.treewalk.filter.PathFilter;
  18. import org.junit.Test;
  19. public class PatchIdDiffFormatterTest extends RepositoryTestCase {
  20. @Test
  21. public void testDiff() throws Exception {
  22. write(new File(db.getDirectory().getParent(), "test.txt"), "test");
  23. File folder = new File(db.getDirectory().getParent(), "folder");
  24. folder.mkdir();
  25. write(new File(folder, "folder.txt"), "folder");
  26. try (Git git = new Git(db);
  27. PatchIdDiffFormatter df = new PatchIdDiffFormatter()) {
  28. git.add().addFilepattern(".").call();
  29. git.commit().setMessage("Initial commit").call();
  30. write(new File(folder, "folder.txt"), "folder change");
  31. df.setRepository(db);
  32. df.setPathFilter(PathFilter.create("folder"));
  33. DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache());
  34. FileTreeIterator newTree = new FileTreeIterator(db);
  35. df.format(oldTree, newTree);
  36. df.flush();
  37. assertEquals("1ff64e0f9333e9b81967c3e8d7a81362b14d5441", df
  38. .getCalulatedPatchId().name());
  39. }
  40. }
  41. @Test
  42. public void testSameDiff() throws Exception {
  43. write(new File(db.getDirectory().getParent(), "test.txt"), "test");
  44. File folder = new File(db.getDirectory().getParent(), "folder");
  45. folder.mkdir();
  46. write(new File(folder, "folder.txt"), "\n\n\n\nfolder");
  47. try (Git git = new Git(db)) {
  48. git.add().addFilepattern(".").call();
  49. git.commit().setMessage("Initial commit").call();
  50. write(new File(folder, "folder.txt"), "\n\n\n\nfolder change");
  51. try (PatchIdDiffFormatter df = new PatchIdDiffFormatter()) {
  52. df.setRepository(db);
  53. df.setPathFilter(PathFilter.create("folder"));
  54. DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache());
  55. FileTreeIterator newTree = new FileTreeIterator(db);
  56. df.format(oldTree, newTree);
  57. df.flush();
  58. assertEquals("08fca5ac531383eb1da8bf6b6f7cf44411281407", df
  59. .getCalulatedPatchId().name());
  60. }
  61. write(new File(folder, "folder.txt"), "a\n\n\n\nfolder");
  62. git.add().addFilepattern(".").call();
  63. git.commit().setMessage("Initial commit").call();
  64. write(new File(folder, "folder.txt"), "a\n\n\n\nfolder change");
  65. try (PatchIdDiffFormatter df = new PatchIdDiffFormatter()) {
  66. df.setRepository(db);
  67. df.setPathFilter(PathFilter.create("folder"));
  68. DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache());
  69. FileTreeIterator newTree = new FileTreeIterator(db);
  70. df.format(oldTree, newTree);
  71. df.flush();
  72. assertEquals("08fca5ac531383eb1da8bf6b6f7cf44411281407", df
  73. .getCalulatedPatchId().name());
  74. }
  75. }
  76. }
  77. }