/******************************************************************************* * Copyright (C) 2015 Obeo and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package org.eclipse.emf.compare.ide.ui.tests.merge; import static org.junit.Assert.assertEquals; import java.io.ByteArrayInputStream; import java.util.Scanner; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IStorage; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.egit.core.project.RepositoryMapping; import org.eclipse.emf.compare.ide.ui.tests.egit.CompareGitTestCase; import org.eclipse.emf.compare.ide.ui.tests.egit.fixture.GitTestRepository; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.team.core.variants.IResourceVariant; import org.junit.After; import org.junit.Before; public abstract class VariantsTestCase extends CompareGitTestCase { protected final String INITIAL_CONTENT_1 = "some content for the first file"; protected final String INITIAL_CONTENT_2 = "some content for the second file"; protected static final String MASTER = Constants.R_HEADS + Constants.MASTER; protected static final String BRANCH = Constants.R_HEADS + "branch"; protected Repository repo; protected IProject iProject; @Before @Override public void setUp() throws Exception { super.setUp(); iProject = project.getProject(); repo = RepositoryMapping.getMapping(iProject).getRepository(); // make initial commit Git git = new Git(repo); try { git.commit().setAuthor("JUnit", "junit@jgit.org").setMessage("Initial commit").call(); } finally { git.close(); } } @After @Override public void tearDown() throws Exception { repository.disconnect(iProject); repo = null; super.tearDown(); } protected RevCommit setContentsAndCommit(GitTestRepository testRepository, IFile targetFile, String newContents, String commitMessage) throws Exception { targetFile.setContents(new ByteArrayInputStream(newContents.getBytes()), IResource.FORCE, new NullProgressMonitor()); testRepository.addToIndex(targetFile); return testRepository.commit(commitMessage); } protected void assertContentEquals(IResourceVariant variant, String expectedContents) throws Exception { assertContentEquals(variant.getStorage(new NullProgressMonitor()), expectedContents); } protected void assertContentEquals(IStorage storage, String expectedContents) throws Exception { Scanner scanner = new Scanner(storage.getContents()); try { scanner.useDelimiter("\\A"); String fileContent = ""; if (scanner.hasNext()) { fileContent = scanner.next(); } assertEquals(expectedContents, fileContent); } finally { scanner.close(); } } }