/* * Copyright (c) 2011, 2012 Roberto Tyley * * This file is part of 'Agit' - an Android Git client. * * Agit is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Agit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/ . */ package com.madgag.agit.filepath; import static com.google.common.base.Functions.compose; import static com.google.common.collect.Lists.reverse; import static com.google.common.collect.Lists.transform; import static com.madgag.agit.filepath.ScoredPath.scoreFor; import static java.util.Arrays.asList; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.CoreMatchers.equalTo; import com.google.common.base.Functions; import com.google.common.collect.Lists; import java.util.Arrays; import java.util.List; import org.junit.Test; public class ScoredPathTest { @Test public void shouldPreferShorterMatches() { assertThatListOrderIsUnchangedForConstraint( "rgc", "rgc", "src/bang/rgc", "src/bang/rgc.java", "src/rabcdegabccoo.java"); } // @Test // public void shouldPositivelyRewardCapitalisedMatches() { // assertThatListOrderIsUnchangedForConstraint( // "rgc", // "rgc", // "src/bang/rgc", // "src/bang/rgc.java", // "src/ReallyGoodClass.java", // "src/ReallyGoodClassName.java", // "src/ReallyGoodToClass.java", // "src/ReadyGrace.java", // "src/rabcdegabccoo.java"); // } // @Test // public void shouldPreferFilesWithNameMatchingConstraint() { // assertThatListOrderIsUnchangedForConstraint("apk", // "src/main/java/com/jayway/maven/plugins/android/configuration/Apk.java", // "src/main/java/com/jayway/maven/plugins/android/phase09package/ApkMojo.java", // "src/main/java/com/jayway/maven/plugins/android/phase09package/ApkBuilder.java", // "src/test/java/com/jayway/maven/plugins/android/phase09package/ApkMojoTest.java", // "src/main/java/com/jayway/maven/plugins/android/AndroidNdk.java"); // } private void assertThatListOrderIsUnchangedForConstraint(String constraint, String... correctlyOrderedPaths) { List<String> correctList = asList(correctlyOrderedPaths); List<FilePath> correctlyOrderedFilePaths = transform(correctList, FilePath.TO_FILEPATH); List<FilePath> reversedList = reverse(correctlyOrderedFilePaths); List<ScoredPath> scoredPaths = ScoredPath.ORDERING.sortedCopy(transform(reversedList, scoreFor(constraint))); assertThat(transform(scoredPaths, compose(FilePath.PATH, ScoredPath.PATH)), equalTo(correctList)); } }