use of org.eclipse.team.core.variants.IResourceVariant in project egit by eclipse.
the class GitResourceVariantComparatorTest method shouldReturnFalseWhenLongContentIsDifferent.
/**
* Comparing two 'large' files that have same length and almost identical
* content should return false.
*
* @throws Exception
*/
@Test
@SuppressWarnings("boxing")
public void shouldReturnFalseWhenLongContentIsDifferent() throws Exception {
// when
byte[] localContent = new byte[8192];
Arrays.fill(localContent, (byte) 'a');
byte[] remoteContent = new byte[8192];
Arrays.fill(remoteContent, (byte) 'a');
remoteContent[8101] = 'b';
GitSynchronizeData data = new GitSynchronizeData(repo, HEAD, HEAD, true);
GitSynchronizeDataSet dataSet = new GitSynchronizeDataSet(data);
GitResourceVariantComparator grvc = new GitResourceVariantComparator(dataSet);
// given
IFile local = mock(IFile.class);
when(local.exists()).thenReturn(true);
when(local.getProject()).thenReturn(project.getProject());
when(local.getContents()).thenReturn(new ByteArrayInputStream(localContent));
IStorage storage = mock(IStorage.class);
when(storage.getContents()).thenReturn(new ByteArrayInputStream(remoteContent));
IResourceVariant remote = mock(IResourceVariant.class);
when(remote.isContainer()).thenReturn(false);
when(remote.getStorage(any(IProgressMonitor.class))).thenReturn(storage);
// then
assertFalse(grvc.compare(local, remote));
}
use of org.eclipse.team.core.variants.IResourceVariant in project egit by eclipse.
the class GitResourceVariantTreeSubscriberTest method testSyncLocalAndBranch.
@Test
public void testSyncLocalAndBranch() throws Exception {
// Note that HEAD is on master
GitResourceVariantTreeSubscriber grvts = createGitResourceVariantTreeSubscriber(Constants.HEAD, BRANCH, true);
grvts.init(new NullProgressMonitor());
IResourceVariant actualSource = getSourceVariant(grvts, changedFile, true);
IResourceVariant actualBase = getBaseVariant(grvts, changedFile);
IResourceVariant actualRemote = getRemoteVariant(grvts, changedFile);
assertVariantIsLocal(actualSource, changedFile);
assertVariantMatchCommit(actualBase, initialCommit);
assertVariantMatchCommit(actualRemote, commitBranch);
}
use of org.eclipse.team.core.variants.IResourceVariant in project egit by eclipse.
the class GitResourceVariantTreeSubscriberTest method getSourceVariant.
private IResourceVariant getSourceVariant(GitResourceVariantTreeSubscriber subscriber, IResource resource, boolean includeLocal) throws TeamException {
IResourceVariantTree tree = subscriber.getSourceTree();
assertNotNull(tree);
assertTrue(tree instanceof GitSourceResourceVariantTree);
IResourceVariant resourceVariant = tree.getResourceVariant(resource);
assertNotNull(resourceVariant);
if (includeLocal)
assertTrue(resourceVariant instanceof GitLocalResourceVariant);
else
assertTrue(resourceVariant instanceof GitRemoteResource);
return resourceVariant;
}
use of org.eclipse.team.core.variants.IResourceVariant in project egit by eclipse.
the class GitResourceVariantTreeSubscriberTest method testSyncBranchAndMaster.
@Test
public void testSyncBranchAndMaster() throws Exception {
GitResourceVariantTreeSubscriber grvts = createGitResourceVariantTreeSubscriber(BRANCH, MASTER, false);
grvts.init(new NullProgressMonitor());
IResourceVariant actualSource = getSourceVariant(grvts, changedFile, false);
IResourceVariant actualBase = getBaseVariant(grvts, changedFile);
IResourceVariant actualRemote = getRemoteVariant(grvts, changedFile);
assertVariantMatchCommit(actualSource, commitBranch);
assertVariantMatchCommit(actualBase, initialCommit);
assertVariantMatchCommit(actualRemote, commitMaster);
}
use of org.eclipse.team.core.variants.IResourceVariant in project ecf by eclipse.
the class RemoteShare method sendFetchVariantsResponse.
private void sendFetchVariantsResponse(ID fromId, IContainer container) {
// the container will be null if an invalid resource type was provided
if (container == null) {
sendMessage(fromId, new FetchResponse());
return;
}
try {
IResource[] members = container.members();
List variants = new ArrayList();
for (int i = 0; i < members.length; i++) {
if (!members[i].isDerived()) {
variants.add(new RemoteResourceVariant(members[i]));
}
}
IResourceVariant[] variantsArray = (IResourceVariant[]) variants.toArray(new IResourceVariant[variants.size()]);
sendMessage(fromId, new FetchResponse(variantsArray));
} catch (CoreException e) {
TeamSynchronization.log(// $NON-NLS-1$
"Could not retrieve container members: " + container.getFullPath(), e);
}
}
Aggregations