![JAR search and dependency download from the Maven repository](/logo.png)
com.darylteo.rx.promises.test.PromiseRxJavaTests Maven / Gradle / Ivy
package com.darylteo.rx.promises.test;
import static org.junit.Assert.assertEquals;
import java.util.concurrent.CountDownLatch;
import org.junit.Test;
import rx.util.functions.Action1;
import rx.util.functions.Func1;
import com.darylteo.rx.promises.java.Promise;
public class PromiseRxJavaTests {
@Test
public void testPromiseToRxSubscribe() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
final Result result = new Result<>();
makePromise("Hello World")
.subscribe(new Action1() {
@Override
public void call(String value) {
result.value = value;
latch.countDown();
}
});
latch.await();
assertEquals("Hello World", result.value);
}
@Test
public void testPromiseToRxMap() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
final Result result = new Result<>();
makePromise("Hello World")
.map(new Func1() {
@Override
public String call(String value) {
return value.toUpperCase();
}
})
.subscribe(new Action1() {
@Override
public void call(String value) {
result.value = value;
latch.countDown();
}
});
latch.await();
assertEquals("HELLO WORLD", result.value);
}
public Promise makePromise(final String value) {
final Promise promise = Promise.defer();
new Thread() {
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
promise.fulfill(value);
}
}
}.start();
return promise;
}
private class Result {
T value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy