use of org.gradle.gradleplugin.foundation.favorites.FavoriteTask in project gradle by gradle.
the class FavoritesIntegrationTest method testSavingRestoringFavorites.
/**
* This creates favorites, saves them to a file, then reads them from that file.
*/
@Test
public void testSavingRestoringFavorites() {
FavoritesEditor originalEditor = new FavoritesEditor();
Assert.assertTrue(originalEditor.getFavoriteTasks().isEmpty());
//add some tasks
FavoriteTask favoriteTask1 = originalEditor.addFavorite(mySubProject1Comple, true);
FavoriteTask favoriteTask2 = originalEditor.addFavorite(mySubSubProjectLib, false);
//now change the display name so its not the same as the full name, just so know each field is working.
originalEditor.editFavorite(favoriteTask1, new FavoritesEditor.EditFavoriteInteraction() {
public boolean editFavorite(FavoritesEditor.EditibleFavoriteTask favoriteTask) {
favoriteTask.displayName = "favorite 1";
return true;
}
public void reportError(String error) {
throw new AssertionError("Unexpected error");
}
});
//make sure they were added properly
FavoriteTask originalFavoriteTask1 = originalEditor.getFavoriteTasks().get(0);
assertFavorite(originalFavoriteTask1, "mysubproject1:compile", "favorite 1", true);
FavoriteTask originalFavoriteTask2 = originalEditor.getFavoriteTasks().get(1);
assertFavorite(originalFavoriteTask2, "mysubproject1:mysubsubproject:lib", "mysubproject1:mysubsubproject:lib", false);
File file = tempDir.createFile("fred.favorite-tasks");
//confirm overwrite because the above function actually creates the file.
originalEditor.exportToFile(new TestUtility.TestExportInteraction(file, true));
FavoritesEditor newEditor = new FavoritesEditor();
newEditor.importFromFile(new TestUtility.TestImportInteraction(file));
//make sure they're the same
FavoriteTask readInFavoriteTask1 = originalEditor.getFavoriteTasks().get(0);
assertFavorite(readInFavoriteTask1, originalFavoriteTask1);
FavoriteTask readInFavoriteTask2 = originalEditor.getFavoriteTasks().get(1);
assertFavorite(readInFavoriteTask2, originalFavoriteTask2);
}
use of org.gradle.gradleplugin.foundation.favorites.FavoriteTask in project gradle by gradle.
the class FavoritesIntegrationTest method testDuplicatingMultipleFavoritesAndCanceling.
/**
* This tests duplicating multiple favorites at once, but we cancel out after duplicating one. We want to make sure that it doesn't continue to create the others. First, we'll create some, then
* duplicate them.
*/
@Test
public void testDuplicatingMultipleFavoritesAndCanceling() {
FavoritesEditor editor = new FavoritesEditor();
//add some tasks
FavoriteTask favoriteTask1 = editor.addFavorite(mySubProject1Comple, true);
FavoriteTask favoriteTask2 = editor.addFavorite(mySubSubProjectLib, false);
FavoriteTask favoriteTask3 = editor.addFavorite(mySubSubProjectDoc, false);
//now change the display names and the alwaysShowOutput field, just so we can verify that all fields are copied.
editFavorite(editor, favoriteTask1, "name1", false);
editFavorite(editor, favoriteTask2, "name2", true);
editFavorite(editor, favoriteTask3, "name3", false);
//get the ones to duplicate in a list
List<FavoriteTask> tasksToCopy = new ArrayList<FavoriteTask>();
tasksToCopy.add(favoriteTask1);
tasksToCopy.add(favoriteTask2);
//now perform the duplication, we only pass in one NameAndCommand but we're editing 2. This makes it cancel the second one.
editor.duplicateFavorites(tasksToCopy, new TestEditFavoriteInteraction(new NameAndCommand("newname1", "newcommand1")));
//there should be 4 tasks now
//this just provides a better error if this fails to cancel
Assert.assertNotSame("Failed to cancel", 5, editor.getFavoriteTasks().size());
Assert.assertEquals(4, editor.getFavoriteTasks().size());
//the 4th one (3 from index 0) should be the same as the first one
FavoriteTask favoriteTask4 = editor.getFavoriteTasks().get(3);
Assert.assertNotNull(favoriteTask4);
Assert.assertEquals("newcommand1", favoriteTask4.getFullCommandLine());
Assert.assertEquals("newname1", favoriteTask4.getDisplayName());
Assert.assertEquals(favoriteTask1.alwaysShowOutput(), favoriteTask4.alwaysShowOutput());
}
use of org.gradle.gradleplugin.foundation.favorites.FavoriteTask in project gradle by gradle.
the class FavoritesIntegrationTest method testEnsureFileHasCorrectExtension.
/**
* This verifies that the serialization mechanism corrects the extension so that it is correct. We'll save a file with the wrong extension. The save mechanism should save it with the correct
* extension appended to the end (leaving the wrong extension in tact, just not at the end).
*/
@Test
public void testEnsureFileHasCorrectExtension() {
FavoritesEditor originalEditor = new FavoritesEditor();
Assert.assertTrue(originalEditor.getFavoriteTasks().isEmpty());
//add a favorite
FavoriteTask favoriteTask1 = originalEditor.addFavorite(mySubProject1Comple, true);
//specify a wrong extension. It should actually end in ".favorite-tasks"
File incorrectFile = tempDir.createFile("fred.wrong");
File correctFile = new File(incorrectFile.getParentFile(), incorrectFile.getName() + ".favorite-tasks");
//Technically, I should place these in a new temporary directory, but I didn't want the hassle of cleanup.
if (correctFile.exists()) {
throw new AssertionError("'correct' file already exists. This means this test WILL succeed but perhaps not for the correct reasons.");
}
//do the export
//confirm overwrite because the above function actually creates the file.
originalEditor.exportToFile(new TestUtility.TestExportInteraction(incorrectFile, true));
//it should have been saved to the correct file
if (!correctFile.exists()) {
throw new AssertionError("failed to correct the file name. Expected it to be saved to '" + correctFile.getAbsolutePath() + "'");
}
//now read in the file to verify it actually worked.
FavoritesEditor newEditor = new FavoritesEditor();
newEditor.importFromFile(new TestUtility.TestImportInteraction(correctFile));
FavoriteTask readInFavoriteTask = newEditor.getFavoriteTasks().get(0);
assertFavorite(readInFavoriteTask, favoriteTask1);
}
use of org.gradle.gradleplugin.foundation.favorites.FavoriteTask in project gradle by gradle.
the class FavoritesIntegrationTest method testDuplicateSingleFavorite.
/**
* This tests duplicating a single favorite. First, we'll create some, then duplicate one.
*/
@Test
public void testDuplicateSingleFavorite() {
FavoritesEditor editor = new FavoritesEditor();
//add some tasks
FavoriteTask favoriteTask1 = editor.addFavorite(mySubProject1Comple, true);
FavoriteTask favoriteTask2 = editor.addFavorite(mySubSubProjectLib, false);
FavoriteTask favoriteTask3 = editor.addFavorite(mySubSubProjectDoc, false);
//now change the display names and the alwaysShowOutput field, just so we can verify that all fields are copied.
editFavorite(editor, favoriteTask1, "name1", false);
editFavorite(editor, favoriteTask2, "name2", true);
editFavorite(editor, favoriteTask3, "name3", false);
//duplicate a single task
FavoriteTask favoriteTask4 = editor.duplicateFavorite(favoriteTask1, new TestEditFavoriteInteraction("name4", "command4"));
Assert.assertNotNull(favoriteTask4);
Assert.assertEquals("command4", favoriteTask4.getFullCommandLine());
Assert.assertEquals("name4", favoriteTask4.getDisplayName());
Assert.assertEquals(favoriteTask1.alwaysShowOutput(), favoriteTask4.alwaysShowOutput());
//there should be 4 tasks now
Assert.assertEquals(4, editor.getFavoriteTasks().size());
//now duplicate another one
FavoriteTask favoriteTask5 = editor.duplicateFavorite(favoriteTask2, new TestEditFavoriteInteraction("name5", "command5"));
Assert.assertNotNull(favoriteTask5);
Assert.assertEquals("command5", favoriteTask5.getFullCommandLine());
Assert.assertEquals("name5", favoriteTask5.getDisplayName());
Assert.assertEquals(favoriteTask2.alwaysShowOutput(), favoriteTask5.alwaysShowOutput());
//there should be 5 tasks now
Assert.assertEquals(5, editor.getFavoriteTasks().size());
}
use of org.gradle.gradleplugin.foundation.favorites.FavoriteTask in project gradle by gradle.
the class FavoritesIntegrationTest method testDuplicatingMultipleFavorites.
/**
* This tests duplicating multiple favorites at once. First, we'll create some, then duplicate them.
*/
@Test
public void testDuplicatingMultipleFavorites() {
FavoritesEditor editor = new FavoritesEditor();
//add some tasks
FavoriteTask favoriteTask1 = editor.addFavorite(mySubProject1Comple, true);
FavoriteTask favoriteTask2 = editor.addFavorite(mySubSubProjectLib, false);
FavoriteTask favoriteTask3 = editor.addFavorite(mySubSubProjectDoc, false);
//now change the display names and the alwaysShowOutput field, just so we can verify that all fields are copied.
editFavorite(editor, favoriteTask1, "name1", false);
editFavorite(editor, favoriteTask2, "name2", true);
editFavorite(editor, favoriteTask3, "name3", false);
//get the ones to dupicate in a list
List<FavoriteTask> tasksToCopy = new ArrayList<FavoriteTask>();
tasksToCopy.add(favoriteTask1);
tasksToCopy.add(favoriteTask2);
//now perform the duplication
editor.duplicateFavorites(tasksToCopy, new TestEditFavoriteInteraction(new NameAndCommand("newname1", "newcommand1"), new NameAndCommand("newname2", "newcommand2")));
//there should be 5 tasks now
Assert.assertEquals(5, editor.getFavoriteTasks().size());
//the 4th one (3 from index 0) should be the same as the first one
FavoriteTask favoriteTask4 = editor.getFavoriteTasks().get(3);
Assert.assertNotNull(favoriteTask4);
Assert.assertEquals("newcommand1", favoriteTask4.getFullCommandLine());
Assert.assertEquals("newname1", favoriteTask4.getDisplayName());
Assert.assertEquals(favoriteTask1.alwaysShowOutput(), favoriteTask4.alwaysShowOutput());
//the 5th one (4 from index 0) should be the same as the second one
FavoriteTask favoriteTask5 = editor.getFavoriteTasks().get(4);
Assert.assertNotNull(favoriteTask5);
Assert.assertEquals("newcommand2", favoriteTask5.getFullCommandLine());
Assert.assertEquals("newname2", favoriteTask5.getDisplayName());
Assert.assertEquals(favoriteTask2.alwaysShowOutput(), favoriteTask5.alwaysShowOutput());
}
Aggregations