diff --git a/core-java-8/pom.xml b/core-java-8/pom.xml index 0e589ebf47..f99d85f564 100644 --- a/core-java-8/pom.xml +++ b/core-java-8/pom.xml @@ -41,6 +41,12 @@ 3.3.2 + + org.slf4j + slf4j-api + ${org.slf4j.version} + + diff --git a/core-java-8/src/test/java/com/baeldung/java8/Java8StreamApiTest.java b/core-java-8/src/test/java/com/baeldung/java8/Java8StreamApiTest.java index a436b3e93f..37326c6d26 100644 --- a/core-java-8/src/test/java/com/baeldung/java8/Java8StreamApiTest.java +++ b/core-java-8/src/test/java/com/baeldung/java8/Java8StreamApiTest.java @@ -2,44 +2,35 @@ package com.baeldung.java8; import com.baeldung.streamApi.Product; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import org.mockito.Mock; -import org.mockito.Mockito; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.BufferedWriter; -import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.*; -import java.util.logging.Logger; import java.util.regex.Pattern; import java.util.stream.*; import static org.junit.Assert.*; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; -/** - * Created by Alex Vengr - */ public class Java8StreamApiTest { private long counter; - private static Logger log = Logger.getAnonymousLogger(); + private static Logger log = LoggerFactory.getLogger(Java8StreamApiTest.class); private List productList; - @Before public void init() { - productList = Arrays.asList(new Product(23, "potatoes"), - new Product(14, "orange"), new Product(13, "lemon"), - new Product(23, "bread"), new Product(13, "sugar")); + productList = Arrays.asList( + new Product(23, "potatoes"), new Product(14, "orange"), + new Product(13, "lemon"), new Product(23, "bread"), + new Product(13, "sugar")); } @Test @@ -47,7 +38,7 @@ public class Java8StreamApiTest { List list = Arrays.asList("abc1", "abc2", "abc3"); long size = list.stream().skip(1) - .map(element -> element.substring(0, 3)).count(); + .map(element -> element.substring(0, 3)).count(); assertEquals(list.size() - 1, size); } @@ -58,18 +49,18 @@ public class Java8StreamApiTest { counter = 0; long sizeFirst = list.stream() - .skip(2).map(element -> { - wasCalled(); - return element.substring(0, 3); - }).count(); - assertEquals( 1, counter); + .skip(2).map(element -> { + wasCalled(); + return element.substring(0, 3); + }).count(); + assertEquals(1, counter); counter = 0; long sizeSecond = list.stream().map(element -> { wasCalled(); return element.substring(0, 3); }).skip(2).count(); - assertEquals( 3, counter); + assertEquals(3, counter); } @Test @@ -117,7 +108,7 @@ public class Java8StreamApiTest { try { streamOfStrings = Files.lines(path, Charset.forName("UTF-8")); } catch (IOException e) { - e.printStackTrace(); + log.error("Error creating streams from paths {}", path, e.getMessage(), e); } assertEquals("a", streamOfStrings.findFirst().get()); @@ -136,13 +127,13 @@ public class Java8StreamApiTest { List list = Arrays.asList("abc1", "abc2", "abc3"); Optional stream = list.stream() - .filter(element -> { - log.info("filter() was called"); - return element.contains("2"); - }).map(element -> { - log.info("map() was called"); - return element.toUpperCase(); - }).findFirst(); + .filter(element -> { + log.info("filter() was called"); + return element.contains("2"); + }).map(element -> { + log.info("map() was called"); + return element.toUpperCase(); + }).findFirst(); } @Test @@ -155,17 +146,17 @@ public class Java8StreamApiTest { assertEquals(16, reducedTwoParams); int reducedThreeParams = Stream.of(1, 2, 3) - .reduce(10, (a, b) -> a + b, (a, b) -> { - log.info("combiner was called"); - return a + b; - }); + .reduce(10, (a, b) -> a + b, (a, b) -> { + log.info("combiner was called"); + return a + b; + }); assertEquals(16, reducedThreeParams); int reducedThreeParamsParallel = Arrays.asList(1, 2, 3).parallelStream() - .reduce(10, (a, b) -> a + b, (a, b) -> { - log.info("combiner was called"); - return a + b; - }); + .reduce(10, (a, b) -> a + b, (a, b) -> { + log.info("combiner was called"); + return a + b; + }); assertEquals(36, reducedThreeParamsParallel); } @@ -173,13 +164,13 @@ public class Java8StreamApiTest { public void collecting_whenAsExpected_thenCorrect() { List collectorCollection = productList.stream() - .map(Product::getName).collect(Collectors.toList()); + .map(Product::getName).collect(Collectors.toList()); assertTrue(collectorCollection instanceof List); assertEquals(5, collectorCollection.size()); String listToString = productList.stream().map(Product::getName) - .collect(Collectors.joining(", ", "[", "]")); + .collect(Collectors.joining(", ", "[", "]")); assertTrue(listToString.contains(",") && listToString.contains("[") && listToString.contains("]")); @@ -190,15 +181,15 @@ public class Java8StreamApiTest { assertEquals(86, summingPrice); IntSummaryStatistics statistics = productList.stream() - .collect(Collectors.summarizingInt(Product::getPrice)); + .collect(Collectors.summarizingInt(Product::getPrice)); assertEquals(23, statistics.getMax()); Map> collectorMapOfLists = productList.stream() - .collect(Collectors.groupingBy(Product::getPrice)); + .collect(Collectors.groupingBy(Product::getPrice)); assertEquals(3, collectorMapOfLists.keySet().size()); Map> mapPartioned = productList.stream() - .collect(Collectors.partitioningBy(element -> element.getPrice() > 15)); + .collect(Collectors.partitioningBy(element -> element.getPrice() > 15)); assertEquals(2, mapPartioned.keySet().size()); } @@ -206,16 +197,19 @@ public class Java8StreamApiTest { @Test(expected = UnsupportedOperationException.class) public void collect_whenThrows_thenCorrect() { Set unmodifiableSet = productList.stream() - .collect(Collectors.collectingAndThen(Collectors.toSet(), - Collections::unmodifiableSet)); + .collect(Collectors.collectingAndThen(Collectors.toSet(), + Collections::unmodifiableSet)); unmodifiableSet.add(new Product(4, "tea")); } @Test public void customCollector_whenResultContainsAllElementsFrSource_thenCorrect() { Collector> toLinkedList = - Collector.of(LinkedList::new, LinkedList::add, - (first, second) -> { first.addAll(second); return first; }); + Collector.of(LinkedList::new, LinkedList::add, + (first, second) -> { + first.addAll(second); + return first; + }); LinkedList linkedListOfPersons = productList.stream().collect(toLinkedList); assertTrue(linkedListOfPersons.containsAll(productList)); @@ -226,14 +220,14 @@ public class Java8StreamApiTest { Stream streamOfCollection = productList.parallelStream(); boolean isParallel = streamOfCollection.isParallel(); boolean haveBigPrice = streamOfCollection.map(product -> product.getPrice() * 12) - .anyMatch(price -> price > 200); + .anyMatch(price -> price > 200); assertTrue(isParallel && haveBigPrice); } @Test public void parallel_whenIsParallel_thenCorrect() { IntStream intStreamParallel = - IntStream.range(1, 150).parallel().map(element -> element * 34); + IntStream.range(1, 150).parallel().map(element -> element * 34); boolean isParallel = intStreamParallel.isParallel(); assertTrue(isParallel); } @@ -241,7 +235,7 @@ public class Java8StreamApiTest { @Test public void parallel_whenIsSequential_thenCorrect() { IntStream intStreamParallel = - IntStream.range(1, 150).parallel().map(element -> element * 34); + IntStream.range(1, 150).parallel().map(element -> element * 34); IntStream intStreamSequential = intStreamParallel.sequential(); boolean isParallel = intStreamParallel.isParallel(); assertFalse(isParallel); @@ -252,13 +246,13 @@ public class Java8StreamApiTest { try { path = Files.createTempFile(null, ".txt"); } catch (IOException e) { - e.printStackTrace(); + log.error(e.getMessage()); } try (BufferedWriter writer = Files.newBufferedWriter(path)) { writer.write("a\nb\nc"); } catch (IOException e) { - e.printStackTrace(); + log.error(e.getMessage()); } return path; }