Code for Optional stream filtering document (#696)

* Add new module for mocks comparison.

* Add sources for testing.

* Changes on testCase.

* Enter some tests for mockito.

* More tests for Mockito.

* Even more tests.

* Add the rest of the mocking libraries.

* Javadoc on test.

* Test bare bones for EasyMock.

* Fist kind of test and setup.

* Add tests using EasyMock with a change on LoginService.

* Create LoginControllerTest.java

* Test setup

* [JMockit] No method called test.

* [JMockit] Two methods called test.

* [JMockit] One method called test.

* [JMockit] Exception mock test

* [JMockit] Mocked object to pass around test.

* [JMockit] Custom matcher test.

* [JMockit] Partial mocking test.

* [JMockit] Fix with IDE.

* Not stubs. Mocks. MOCKS!!!

* Remove unnecesary import.

* Use correct encoding. Was having problems with buildings.

* Remove failing module.

* Create new module mocks and move mock-comparisons there.

* Add jmockit module.

* Add model class.

* Add collaborator class.

* Add performer class.

* Add performer test.

* Fix

* Add interface for tests.

* Test for any.

* Test for with.

* Test for null.

* Test for times.

* Test for arg that.

* Test for result and returns.

* Test for delegate.

* Add verifications to any tests.

* Add verifications to with test.

* Add verification examples to methods using null.

* Add verifications to methods using times.

* Formatting.

* Compress tests and fix one test.

* Adding new article to readme.

* [BAEL-178] Add collaborator for advanced article.

* [BAEL-178] Add link to readme.

* [BAEL-178] Add test for mockUp.

* [BAEL-178] Add test for invoke method.

* [BAEL-178] Add constructors and tests for mockup for constructors.

* [BAEL-178] Add private fields and more test for deencapsulation.

* [BAEL-178] Add inner class and test for instantiating inner classes.

* [BAEL-178] Multimocks.

* [BAEL-178] Add test for expectation reusing.

* [BAEL-178] Move test class to tests folders.

* Add postgresql dependency.

* Add test and config with properties.

* [BAEL-114] Add new project for JPA with JNDI.

* [BAEL-114] Config without xml.

* [BAEL-114] Bring part of Foo, FooServie and FooDao.

* [BAEL-114] Show all foos.

* [BAEL-114] Readme.

* [BAEL-114] Undo changes on main jpa project.

* [BAEL-114] Remove unnecesary dependencies.

* [BAEL-114] Add tomcat config.

* [BAEL-114] Fixes.

* Add tests for Optional streams.

* Add Java 9 version of the test.

* Rename and move to new core-java-9 module.
This commit is contained in:
Álvaro Fernández González 2016-09-23 14:25:09 +02:00 committed by Grzegorz Piwowarek
parent eaa04c6c7f
commit 043a6bddc8
1 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,63 @@
package com.baeldung.java8;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.junit.Before;
import org.junit.Test;
public class Java9OptionalsStreamTest {
private List<Optional<String>> listOfOptionals;
@Before
public void populateStream() {
listOfOptionals = Arrays.asList(Optional.empty(), Optional.of("foo"), Optional.empty(), Optional.of("bar"));
}
@Test
public void filterOutPresentOptionalsWithFilter() {
assertEquals(4, listOfOptionals.size());
//@format:off
List<String> filteredList = listOfOptionals.stream()
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());
//@format:on
assertEquals(2, filteredList.size());
assertEquals("foo", filteredList.get(0));
assertEquals("bar", filteredList.get(1));
}
@Test
public void filterOutPresentOptionalsWithFlatMap() {
assertEquals(4, listOfOptionals.size());
//@format:off
List<String> filteredList = listOfOptionals.stream()
.flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty())
.collect(Collectors.toList());
//@format:on
assertEquals(2, filteredList.size());
assertEquals("foo", filteredList.get(0));
assertEquals("bar", filteredList.get(1));
}
@Test
public void filterOutPresentOptionalsWithJava9() {
assertEquals(4, listOfOptionals.size());
//@format:off
List<String> filteredList = listOfOptionals.stream()
.flatMap(Optional::stream)
.collect(Collectors.toList());
//@format:on
assertEquals(2, filteredList.size());
assertEquals("foo", filteredList.get(0));
assertEquals("bar", filteredList.get(1));
}
}