123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- package com.luticate.utils;
-
- import com.luticate.utils.business.LuConsumer;
- import com.luticate.utils.business.LuConverter;
- import com.luticate.utils.business.LuPromise;
- import com.luticate.utils.dbo.LuPromiseError;
- import com.luticate.utils.dbo.LuVoidDbo;
-
- import org.junit.Test;
-
- import static org.junit.Assert.*;
-
- /**
- * Created by robin on 10/22/16.
- */
-
- public class PromiseTest {
-
- @Test
- public void resolveTest()
- {
- LuPromise<Integer> promise = new LuPromise<>();
- final int[] results = new int[]{42, 24, 4242};
-
- promise.then(new LuConsumer<Integer>() {
- @Override
- public void execute(Integer data) {
- assertEquals(42, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- ++results[0];
- }
- }, new LuConsumer<LuPromiseError>() {
- @Override
- public void execute(LuPromiseError data) {
- assertEquals(42, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- --results[0];
- }
- }).then(new LuConsumer<Integer>() {
- @Override
- public void execute(Integer data) {
- assertEquals(43, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- ++results[1];
- }
- }, new LuConsumer<LuPromiseError>() {
- @Override
- public void execute(LuPromiseError data) {
- assertEquals(41, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- --results[1];
- }
- });
- assertEquals(42, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- assertEquals(LuPromise.LuPromiseStatus.Running, promise.getStatus());
- assertNull(promise.getData());
-
- promise.resolve(4224).then(new LuConsumer<Integer>() {
- @Override
- public void execute(Integer data) {
- assertEquals(43, results[0]);
- assertEquals(25, results[1]);
- assertEquals(4242, results[2]);
- ++results[2];
- }
- }, new LuConsumer<LuPromiseError>() {
- @Override
- public void execute(LuPromiseError data) {
- assertEquals(41, results[0]);
- assertEquals(23, results[1]);
- assertEquals(4242, results[2]);
- --results[2];
- }
- });
- assertEquals(43, results[0]);
- assertEquals(25, results[1]);
- assertEquals(4243, results[2]);
- assertEquals(LuPromise.LuPromiseStatus.Resolved, promise.getStatus());
- assertEquals(4224, promise.getData().intValue());
- }
-
- @Test
- public void rejectTest()
- {
- LuPromise<Integer> promise = new LuPromise<>();
- final int[] results = new int[]{42, 24, 4242};
-
- promise.then(new LuConsumer<Integer>() {
- @Override
- public void execute(Integer data) {
- assertEquals(42, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- ++results[0];
- }
- }, new LuConsumer<LuPromiseError>() {
- @Override
- public void execute(LuPromiseError data) {
- assertEquals(42, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- --results[0];
- }
- }).then(new LuConsumer<Integer>() {
- @Override
- public void execute(Integer data) {
- assertEquals(43, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- ++results[1];
- }
- }, new LuConsumer<LuPromiseError>() {
- @Override
- public void execute(LuPromiseError data) {
- assertEquals(41, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- --results[1];
- }
- });
- assertEquals(42, results[0]);
- assertEquals(24, results[1]);
- assertEquals(4242, results[2]);
- assertEquals(LuPromise.LuPromiseStatus.Running, promise.getStatus());
- assertNull(promise.getData());
-
- promise.reject(null).then(new LuConsumer<Integer>() {
- @Override
- public void execute(Integer data) {
- assertEquals(43, results[0]);
- assertEquals(25, results[1]);
- assertEquals(4242, results[2]);
- ++results[2];
- }
- }, new LuConsumer<LuPromiseError>() {
- @Override
- public void execute(LuPromiseError data) {
- assertEquals(41, results[0]);
- assertEquals(23, results[1]);
- assertEquals(4242, results[2]);
- --results[2];
- }
- });
- assertEquals(41, results[0]);
- assertEquals(23, results[1]);
- assertEquals(4241, results[2]);
- assertEquals(LuPromise.LuPromiseStatus.Failed, promise.getStatus());
- assertNull(promise.getData());
- }
-
- @Test
- public void mapTest()
- {
- LuPromise<Integer> promise = new LuPromise<>();
- final int[] result = new int[1];
- promise.map(new LuConverter<Integer, Boolean>() {
- @Override
- public Boolean convert(Integer data) {
- return data == 42;
- }
- }).then(new LuConsumer<Boolean>() {
- @Override
- public void execute(Boolean data) {
- result[0] = data ? 4242 : 2424;
- }
- }, new LuConsumer<LuPromiseError>() {
- @Override
- public void execute(LuPromiseError data) {
- result[0] = 2442;
- }
- });
- promise.resolve(42);
- assertEquals(result[0], 4242);
- }
- }
|