/platform/platform-tests/testSrc/com/intellij/history/core/tree/FileEntryTest.java

https://bitbucket.org/nbargnesi/idea · Java · 146 lines · 101 code · 30 blank · 15 comment · 0 complexity · 66da945fefde984068882c52d6f47326 MD5 · raw file

  1. /*
  2. * Copyright 2000-2009 JetBrains s.r.o.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package com.intellij.history.core.tree;
  17. import com.intellij.history.core.LocalHistoryTestCase;
  18. import com.intellij.history.core.Paths;
  19. import com.intellij.history.core.StoredContent;
  20. import com.intellij.history.core.revisions.Difference;
  21. import org.junit.Ignore;
  22. import org.junit.Test;
  23. import java.util.List;
  24. public class FileEntryTest extends LocalHistoryTestCase {
  25. @Test
  26. @Ignore
  27. public void testHasUnavailableContent() {
  28. Entry e1 = new FileEntry(null, c("abc"), -1, false);
  29. Entry e2 = new FileEntry(null, new StoredContent(-1), -1, false);
  30. assertFalse(e1.hasUnavailableContent());
  31. assertTrue(e2.hasUnavailableContent());
  32. }
  33. @Test
  34. public void testCopying() {
  35. FileEntry file = new FileEntry("name", c("content"), 123L, true);
  36. Entry copy = file.copy();
  37. assertEquals("name", copy.getName());
  38. assertContent("content", copy.getContent());
  39. assertEquals(123L, copy.getTimestamp());
  40. assertTrue(copy.isReadOnly());
  41. }
  42. @Test
  43. public void testDoesNotCopyParent() {
  44. DirectoryEntry parent = new DirectoryEntry(null);
  45. FileEntry file = new FileEntry(null, null, -1, false);
  46. parent.addChild(file);
  47. Entry copy = file.copy();
  48. assertNull(copy.getParent());
  49. }
  50. @Test
  51. public void testRenaming() {
  52. Entry e = new FileEntry("name", null, -1, false);
  53. e.setName("new name");
  54. assertEquals("new name", e.getName());
  55. }
  56. @Test
  57. public void testOutdated() {
  58. Entry e = new FileEntry("name", null, 2L, false);
  59. assertTrue(e.isOutdated(1L));
  60. assertTrue(e.isOutdated(3L));
  61. assertFalse(e.isOutdated(2L));
  62. }
  63. @Test
  64. public void testNoDifference() {
  65. FileEntry e1 = new FileEntry("name", c("content"), -1, false);
  66. FileEntry e2 = new FileEntry("name", c("content"), -1, false);
  67. assertTrue(Entry.getDifferencesBetween(e1, e2).isEmpty());
  68. }
  69. @Test
  70. public void testDifferenceInName() {
  71. Entry e1 = new FileEntry("name", c("content"), -1, false);
  72. Entry e2 = new FileEntry("another name", c("content"), -1, false);
  73. List<Difference> dd = Entry.getDifferencesBetween(e1, e2);
  74. assertDifference(dd, e1, e2);
  75. }
  76. @Test
  77. public void testDifferenceInNameIsAlwaysCaseSensitive() {
  78. Entry e1 = new FileEntry("name", c(""), -1, false);
  79. Entry e2 = new FileEntry("NAME", c(""), -1, false);
  80. Paths.setCaseSensitive(false);
  81. assertEquals(1, Entry.getDifferencesBetween(e1, e2).size());
  82. Paths.setCaseSensitive(true);
  83. assertEquals(1, Entry.getDifferencesBetween(e1, e2).size());
  84. }
  85. @Test
  86. public void testDifferenceInContent() {
  87. FileEntry e1 = new FileEntry("name", c("content"), -1, false);
  88. FileEntry e2 = new FileEntry("name", c("another content"), -1, false);
  89. List<Difference> dd = Entry.getDifferencesBetween(e1, e2);
  90. assertDifference(dd, e1, e2);
  91. }
  92. @Test
  93. public void testDifferenceInROStatus() {
  94. FileEntry e1 = new FileEntry("name", c("content"), -1, true);
  95. FileEntry e2 = new FileEntry("name", c("content"), -1, false);
  96. List<Difference> dd = Entry.getDifferencesBetween(e1, e2);
  97. assertDifference(dd, e1, e2);
  98. }
  99. @Test
  100. public void testAsCreatedDifference() {
  101. FileEntry e = new FileEntry(null, null, -1, false);
  102. assertDifference(Entry.getDifferencesBetween(null, e), null, e);
  103. }
  104. @Test
  105. public void testAsDeletedDifference() {
  106. FileEntry e = new FileEntry(null, null, -1, false);
  107. assertDifference(Entry.getDifferencesBetween(e, null), e, null);
  108. }
  109. private void assertDifference(List<Difference> dd, Entry left, Entry right) {
  110. assertEquals(1, dd.size());
  111. Difference d = dd.get(0);
  112. assertTrue(d.isFile());
  113. assertSame(left, d.getLeft());
  114. assertSame(right, d.getRight());
  115. }
  116. }