package org.activityinfo.core.client;
import com.google.common.base.Function;
import org.activityinfo.promise.Promise;
import org.junit.Test;
import javax.annotation.Nullable;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
public class AsyncTest {
@Test
public void normallyResolved() {
Promise<Integer> promise = new Promise<Integer>();
assertFalse(promise.isSettled());
assertThat(promise.getState(), equalTo(Promise.State.PENDING));
promise.resolve(64);
assertThat(promise.getState(), equalTo(Promise.State.FULFILLED));
assertThat(promise, PromiseMatchers.resolvesTo(equalTo(64)));
Function<Integer, Double> takeSquareRoot = new Function<Integer, Double>() {
@Nullable
@Override
public Double apply(@Nullable Integer integer) {
return Math.sqrt(integer);
}
};
assertThat(promise.then(takeSquareRoot), PromiseMatchers.resolvesTo(equalTo(8.0)));
}
@Test
public void retryable() {
}
}