/******************************************************************************* * Copyright (C) 2015 Andrey Loskutov <loskutov@gmx.de> 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.egit.core.internal.indexdiff; import static java.util.Arrays.asList; import static org.eclipse.egit.core.internal.indexdiff.IndexDiffData.isAnyPrefixOf; import static org.eclipse.egit.core.internal.indexdiff.IndexDiffData.mergeIgnored; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.Collection; import java.util.HashSet; import java.util.Set; import org.eclipse.egit.core.test.GitTestCase; import org.junit.Test; public class IndexDiffDataTest extends GitTestCase { @Test public void testIsAnyPrefixOf() { Collection<String> possiblePrefixes = asList("", "/"); assertTrue(isAnyPrefixOf("", possiblePrefixes)); possiblePrefixes = asList("", "/"); assertTrue(isAnyPrefixOf("/", possiblePrefixes)); possiblePrefixes = asList("a"); assertTrue(isAnyPrefixOf("a", possiblePrefixes)); possiblePrefixes = asList("a/"); assertTrue(isAnyPrefixOf("a", possiblePrefixes)); possiblePrefixes = asList("b"); assertFalse(isAnyPrefixOf("a", possiblePrefixes)); possiblePrefixes = asList("b", "ab", "b/", "aa"); assertFalse(isAnyPrefixOf("a", possiblePrefixes)); } @Test public void testMergeIgnored() { Set<String> result; Set<String> expected = new HashSet<String>(); Set<String> oldIgnoredPaths = new HashSet<String>(); Collection<String> changedPaths = new HashSet<String>(); Set<String> newIgnoredPaths = new HashSet<String>(); result = mergeIgnored(oldIgnoredPaths, changedPaths, newIgnoredPaths); assertEquals(expected, result); newIgnoredPaths.add("a"); changedPaths.add("a"); expected.add("a"); result = mergeIgnored(oldIgnoredPaths, changedPaths, newIgnoredPaths); assertEquals(expected, result); newIgnoredPaths.add("b"); expected.add("b"); result = mergeIgnored(oldIgnoredPaths, changedPaths, newIgnoredPaths); assertEquals(expected, result); changedPaths.add("b"); result = mergeIgnored(oldIgnoredPaths, changedPaths, newIgnoredPaths); assertEquals(expected, result); oldIgnoredPaths.add("b"); result = mergeIgnored(oldIgnoredPaths, changedPaths, newIgnoredPaths); assertEquals(expected, result); oldIgnoredPaths.add("c"); expected.add("c"); result = mergeIgnored(oldIgnoredPaths, changedPaths, newIgnoredPaths); assertEquals(expected, result); newIgnoredPaths.add("b"); expected.add("b"); result = mergeIgnored(oldIgnoredPaths, changedPaths, newIgnoredPaths); assertEquals(expected, result); } }