blob: af79b0156f282ae35f6906b3479cd0e179814e34 [file] [log] [blame]
/*******************************************************************************
* 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();
}
}
}