tikhomirov@526: /* tikhomirov@526: * Copyright (c) 2013 TMate Software Ltd tikhomirov@526: * tikhomirov@526: * This program is free software; you can redistribute it and/or modify tikhomirov@526: * it under the terms of the GNU General Public License as published by tikhomirov@526: * the Free Software Foundation; version 2 of the License. tikhomirov@526: * tikhomirov@526: * This program is distributed in the hope that it will be useful, tikhomirov@526: * but WITHOUT ANY WARRANTY; without even the implied warranty of tikhomirov@526: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the tikhomirov@526: * GNU General Public License for more details. tikhomirov@526: * tikhomirov@526: * For information on how to redistribute this software under tikhomirov@526: * the terms of a license other than GNU General Public License tikhomirov@526: * contact TMate Software at support@hg4j.com tikhomirov@526: */ tikhomirov@526: package org.tmatesoft.hg.test; tikhomirov@526: tikhomirov@526: import static org.junit.Assert.assertEquals; tikhomirov@526: tikhomirov@526: import java.io.File; tikhomirov@526: tikhomirov@526: import org.junit.Rule; tikhomirov@526: import org.junit.Test; tikhomirov@526: import org.tmatesoft.hg.core.HgRevertCommand; tikhomirov@526: import org.tmatesoft.hg.repo.HgLookup; tikhomirov@526: import org.tmatesoft.hg.repo.HgRepository; tikhomirov@526: import org.tmatesoft.hg.util.Path; tikhomirov@526: tikhomirov@526: tikhomirov@526: /** tikhomirov@526: * tikhomirov@526: * @author Artem Tikhomirov tikhomirov@526: * @author TMate Software Ltd. tikhomirov@526: */ tikhomirov@526: public class TestRevert { tikhomirov@526: tikhomirov@526: @Rule tikhomirov@526: public ErrorCollectorExt errorCollector = new ErrorCollectorExt(); tikhomirov@527: tikhomirov@526: private HgRepository repo; tikhomirov@526: private ExecHelper eh; tikhomirov@526: tikhomirov@526: tikhomirov@526: public TestRevert() { tikhomirov@526: } tikhomirov@526: tikhomirov@526: @Test tikhomirov@526: public void testCommand() throws Exception { tikhomirov@526: // get a copy of a repository tikhomirov@536: File testRepoLoc = RepoUtils.cloneRepoToTempLocation(Configuration.get().find("log-1"), "test-revert", false); tikhomirov@526: tikhomirov@526: repo = new HgLookup().detect(testRepoLoc); tikhomirov@526: Path targetFile = Path.create("b"); tikhomirov@536: RepoUtils.modifyFileAppend(new File(testRepoLoc, targetFile.toString())); tikhomirov@526: tikhomirov@526: StatusOutputParser statusParser = new StatusOutputParser(); tikhomirov@526: eh = new ExecHelper(statusParser, testRepoLoc); tikhomirov@526: eh.run("hg", "status", "-A"); tikhomirov@526: assertEquals("[sanity]", 1, statusParser.getModified().size()); tikhomirov@526: assertEquals("[sanity]", 2, statusParser.getClean().size()); tikhomirov@526: assertEquals("[sanity]", targetFile, statusParser.getModified().get(0)); tikhomirov@526: tikhomirov@526: HgRevertCommand cmd = new HgRevertCommand(repo); tikhomirov@526: cmd.file(targetFile).execute(); tikhomirov@526: statusParser.reset(); tikhomirov@526: eh.run("hg", "status", "-A"); tikhomirov@526: tikhomirov@527: errorCollector.assertEquals(3, statusParser.getClean().size()); tikhomirov@527: errorCollector.assertTrue(statusParser.getClean().contains(targetFile)); tikhomirov@527: errorCollector.assertEquals(1, statusParser.getUnknown().size()); tikhomirov@527: errorCollector.assertEquals(targetFile.toString() + ".orig", statusParser.getUnknown().get(0).toString()); tikhomirov@526: } tikhomirov@526: }