| /* |
| * Copyright 2000-2012 JetBrains s.r.o. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.jetbrains.idea.svn; |
| |
| import com.intellij.openapi.vcs.FilePathImpl; |
| import com.intellij.openapi.vcs.VcsConfiguration; |
| import com.intellij.openapi.vcs.changes.Change; |
| import com.intellij.openapi.vcs.changes.ChangeListManager; |
| import com.intellij.openapi.vcs.changes.VcsDirtyScopeManager; |
| import com.intellij.openapi.vfs.LocalFileSystem; |
| import com.intellij.openapi.vfs.VirtualFile; |
| import junit.framework.Assert; |
| import org.jetbrains.idea.svn.conflict.ConflictAction; |
| import org.jetbrains.idea.svn.conflict.ConflictOperation; |
| import org.jetbrains.idea.svn.conflict.ConflictVersion; |
| import org.jetbrains.idea.svn.conflict.TreeConflictDescription; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| import java.io.File; |
| |
| /** |
| * @author Irina.Chernushina |
| * @since 2.05.2012 |
| */ |
| public class SvnTreeConflictDataTest extends Svn17TestCase { |
| private VirtualFile myTheirs; |
| private SvnClientRunnerImpl mySvnClientRunner; |
| |
| @Override |
| @Before |
| public void setUp() throws Exception { |
| myWcRootName = "wcRootConflictData"; |
| myTraceClient = true; |
| super.setUp(); |
| disableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); |
| |
| myTheirs = myTempDirFixture.findOrCreateDir("theirs"); |
| mySvnClientRunner = new SvnClientRunnerImpl(myRunner); |
| mySvnClientRunner.checkout(myRepoUrl, myTheirs); |
| } |
| |
| @Test |
| public void testFile2File_MINE_UNV_THEIRS_ADD() throws Exception { |
| final ConflictCreator creator = new ConflictCreator(myProject, myTheirs, myWorkingCopyDir, |
| TreeConflictData.FileToFile.MINE_UNV_THEIRS_ADD, mySvnClientRunner); |
| creator.create(); |
| final String conflictFile = TreeConflictData.FileToFile.MINE_UNV_THEIRS_ADD.getConflictFile(); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| Assert.assertNull(beforeDescription.getSourceLeftVersion()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| } |
| |
| @Test |
| public void testFile2File_MINE_EDIT_THEIRS_DELETE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToFile.MINE_EDIT_THEIRS_DELETE); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.DELETE, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertTrue(leftVersion.isFile()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isNone()); |
| } |
| |
| private String createConflict(final TreeConflictData.Data data) throws Exception { |
| mySvnClientRunner.testSvnVersion(myWorkingCopyDir); |
| createSubTree(); |
| |
| final ConflictCreator creator = new ConflictCreator(myProject, myTheirs, myWorkingCopyDir, data, mySvnClientRunner); |
| creator.create(); |
| return data.getConflictFile(); |
| } |
| |
| @Test |
| public void testFile2File_MINE_DELETE_THEIRS_EDIT() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToFile.MINE_DELETE_THEIRS_EDIT); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.EDIT, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertTrue(leftVersion.isFile()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| } |
| |
| @Test |
| public void testFile2File_MINE_EDIT_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToFile.MINE_EDIT_THEIRS_MOVE); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.DELETE, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertTrue(leftVersion.isFile()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isNone()); |
| } |
| |
| @Test |
| public void testFile2File_MINE_UNV_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToFile.MINE_UNV_THEIRS_MOVE); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| |
| } |
| |
| @Test |
| public void testFile2File_MINE_MOVE_THEIRS_EDIT() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToFile.MINE_MOVE_THEIRS_EDIT); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.EDIT, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertTrue(leftVersion.isFile()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| |
| } |
| |
| @Test |
| public void testFile2File_MINE_MOVE_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToFile.MINE_MOVE_THEIRS_ADD); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| //Assert.assertEquals(NodeKind.FILE, leftVersion.getKind()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| |
| } |
| |
| //---------------------------------- dirs -------------------------------------------------------- |
| @Test |
| public void testDir2Dir_MINE_UNV_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToDir.MINE_UNV_THEIRS_ADD); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| // not a conflict in Subversion 1.7.7. "mine" file becomes added |
| /*@Test |
| public void testDir2Dir_MINE_EDIT_THEIRS_DELETE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToDir.MINE_EDIT_THEIRS_DELETE); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.DELETE, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertEquals(NodeKind.DIR, leftVersion.getKind()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertEquals(NodeKind.NONE, version.getKind()); |
| }*/ |
| |
| @Test |
| public void testDir2Dir_MINE_DELETE_THEIRS_EDIT() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToDir.MINE_DELETE_THEIRS_EDIT); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| final Change change = changeListManager.getChange(new FilePathImpl(new File(myWorkingCopyDir.getPath(), conflictFile), true)); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.EDIT, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertTrue(leftVersion.isDirectory()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| @Test |
| public void testDir2Dir_MINE_EDIT_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToDir.MINE_EDIT_THEIRS_MOVE); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.DELETE, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertTrue(leftVersion.isDirectory()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isNone()); |
| } |
| |
| @Test |
| public void testDir2Dir_MINE_UNV_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToDir.MINE_UNV_THEIRS_MOVE); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| @Test |
| public void testDir2Dir_MINE_MOVE_THEIRS_EDIT() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToDir.MINE_MOVE_THEIRS_EDIT); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| final Change change = changeListManager.getChange(new FilePathImpl(new File(myWorkingCopyDir.getPath(), conflictFile), true)); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.EDIT, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNotNull(leftVersion); |
| Assert.assertTrue(leftVersion.isDirectory()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| @Test |
| public void testDir2Dir_MINE_MOVE_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToDir.MINE_MOVE_THEIRS_ADD); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| changeListManager.ensureUpToDate(false); |
| |
| final Change change = changeListManager.getChange(new FilePathImpl(new File(myWorkingCopyDir.getPath(), conflictFile), true)); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| //Assert.assertEquals(NodeKind.DIR, leftVersion.getKind()); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| //--------------------------------- |
| @Test |
| public void testFile2Dir_MINE_UNV_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToDir.MINE_UNV_THEIRS_ADD); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| @Test |
| public void testFile2Dir_MINE_ADD_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToDir.MINE_ADD_THEIRS_ADD); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| @Test |
| public void testFile2Dir_MINE_UNV_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToDir.MINE_UNV_THEIRS_MOVE); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| @Test |
| public void testFile2Dir_MINE_ADD_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToDir.MINE_ADD_THEIRS_MOVE); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| |
| @Test |
| public void testFile2Dir_MINE_MOVE_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.FileToDir.MINE_MOVE_THEIRS_ADD); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isDirectory()); |
| } |
| //****************************************** |
| // dir -> file (mine, theirs) |
| @Test |
| public void testDir2File_MINE_UNV_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToFile.MINE_UNV_THEIRS_ADD); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| } |
| |
| @Test |
| public void testDir2File_MINE_ADD_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToFile.MINE_ADD_THEIRS_ADD); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| } |
| |
| @Test |
| public void testDir2File_MINE_UNV_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToFile.MINE_UNV_THEIRS_MOVE); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| } |
| |
| @Test |
| public void testDir2File_MINE_ADD_THEIRS_MOVE() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToFile.MINE_ADD_THEIRS_MOVE); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| } |
| |
| @Test |
| public void testDir2File_MINE_MOVE_THEIRS_ADD() throws Exception { |
| final String conflictFile = createConflict(TreeConflictData.DirToFile.MINE_MOVE_THEIRS_ADD); |
| |
| ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); |
| changeListManager.ensureUpToDate(false); |
| |
| VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(myWorkingCopyDir.getPath(), conflictFile)); |
| Assert.assertNotNull(vf); |
| final Change change = changeListManager.getChange(vf); |
| Assert.assertTrue(change instanceof ConflictedSvnChange); |
| TreeConflictDescription beforeDescription = ((ConflictedSvnChange)change).getBeforeDescription(); |
| Assert.assertNotNull(beforeDescription); |
| |
| final TreeConflictDescription afterDescription = ((ConflictedSvnChange)change).getAfterDescription(); |
| Assert.assertNull(afterDescription); |
| Assert.assertEquals(ConflictOperation.UPDATE, beforeDescription.getOperation()); |
| Assert.assertEquals(ConflictAction.ADD, beforeDescription.getConflictAction()); |
| |
| Assert.assertTrue(beforeDescription.isTreeConflict()); |
| ConflictVersion leftVersion = beforeDescription.getSourceLeftVersion(); |
| Assert.assertNull(leftVersion); |
| |
| final ConflictVersion version = beforeDescription.getSourceRightVersion(); |
| Assert.assertNotNull(version); |
| Assert.assertTrue(version.isFile()); |
| } |
| |
| private void createSubTree() throws Exception { |
| enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); |
| enableSilentOperation(VcsConfiguration.StandardConfirmation.REMOVE); |
| |
| new SubTree(myWorkingCopyDir); |
| mySvnClientRunner.checkin(myWorkingCopyDir); |
| sleep(10); |
| mySvnClientRunner.update(myTheirs); |
| mySvnClientRunner.update(myWorkingCopyDir); |
| sleep(10); |
| |
| disableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); |
| disableSilentOperation(VcsConfiguration.StandardConfirmation.REMOVE); |
| } |
| } |