1 package io.atlassian.fugue;
2
3 import org.junit.Test;
4
5 import java.util.function.Function;
6 import java.util.function.Supplier;
7
8 import static org.hamcrest.core.Is.is;
9 import static org.junit.Assert.*;
10
11 public class ApplicativeSupplier {
12
13 final Supplier<String> f = () -> "input";
14 final Supplier<Function<String, Integer>> g = () -> String::length;
15
16 @Test public void supplierApplication() {
17 assertThat(Suppliers.ap(f, g).get(), is(5));
18 }
19
20 @Test(expected = NullPointerException.class) public void supplierApplicationNullInput() {
21 Suppliers.ap(null, g).get();
22 }
23
24 @Test(expected = NullPointerException.class) public void supplierApplicationNullTransform() {
25 Suppliers.ap(f, null).get();
26 }
27
28 @Test(expected = NullPointerException.class) public void supplierApplicationAllNull() {
29 final Supplier<String> f = null;
30 final Supplier<Function<String, Integer>> g = null;
31 Suppliers.ap(f, g).get();
32 }
33 }