@Test public void combine_workers() { final StringBuffer buffer = new StringBuffer(); Worker<String> appendWorker = new Worker<String>() { @Override public void work(String value) { if (buffer.length() > 0) buffer.append(' '); buffer.append(value); } }; Worker<String> appendLength = new Worker<String>() { @Override public void work(String value) { buffer.append('('); buffer.append(value.length()); buffer.append(')'); } }; F.flow("Mary", "had", "a", "little", "lamb").each(F.combine(appendWorker, appendLength)); assertEquals(buffer.toString(), "Mary(4) had(3) a(1) little(6) lamb(4)"); }
@Test public void combine_mappers() { List<Boolean> even = F.flow("Mary", "had", "a", "little", "lamb").map(F.combine(stringToLength, toEven)) .toList(); assertListsEquals(even, true, false, false, true, true); }
public FormSupportStack(final AssetSource assetSource, @Symbol(JQuerySymbolConstants.USE_MINIFIED_JS) final boolean minified) { final Mapper<String, Asset> pathToAsset = new Mapper<String, Asset>() { public Asset map(String path) { return assetSource.getExpandedAsset(path); } }; javaScriptStack = F.flow("${tapestry.jquery.path}/validation.js") .map(pathToAsset).toList(); final Mapper<String, StylesheetLink> pathToStylesheetLink = F.combine(pathToAsset, JQueryUtils.assetToStylesheetLink); stylesheetStack = F.flow("${tapestry.jquery.path}/form.css").map(pathToStylesheetLink).toList(); }
@Test public void select_and_filter() { Predicate<String> combinedp = F.toPredicate(F.combine(stringToLength, toEven)); Mapper<String, String> identity = F.identity(); Predicate<String> isNull = F.isNull(); // Converting to null and then filtering out nulls is the hard way to do filter or remove, // but exercises the code we want to test. List<String> filtered = F.flow("Mary", "had", "a", "little", "lamb").map(F.select(combinedp, identity)) .remove(isNull).toList(); assertListsEquals(filtered, "Mary", "little", "lamb"); }