1 /* 2 * Copyright (C) 2017 The Dagger Authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package dagger.functional.producers.fluentfuture; 18 19 import static com.google.common.truth.Truth.assertThat; 20 import static com.google.common.util.concurrent.Futures.immediateFuture; 21 import static com.google.common.util.concurrent.MoreExecutors.directExecutor; 22 23 import com.google.common.util.concurrent.FluentFuture; 24 import dagger.functional.producers.fluentfuture.FluentFutures.Component; 25 import dagger.functional.producers.fluentfuture.FluentFutures.Dependency; 26 import org.junit.Test; 27 import org.junit.runner.RunWith; 28 import org.junit.runners.JUnit4; 29 30 @RunWith(JUnit4.class) 31 public final class FluentFuturesTest { 32 33 @Test testFluentFutures()34 public void testFluentFutures() throws Exception { 35 Component component = 36 DaggerFluentFutures_Component.builder() 37 .executor(directExecutor()) 38 .dependency( 39 new Dependency() { 40 @Override 41 public FluentFuture<Float> floatFuture() { 42 return FluentFuture.from(immediateFuture(42.0f)); 43 } 44 }) 45 .build(); 46 assertThat(component.string().isDone()).isTrue(); 47 assertThat(component.string().get()).isEqualTo("hello"); 48 assertThat(component.setOfDouble().isDone()).isTrue(); 49 assertThat(component.setOfDouble().get()).containsExactly(5.0, 6.0, 7.0, 42.0); 50 } 51 } 52