package com.reactivecascade.systemtest;
import android.content.Context;
import com.reactivecascade.Async;
import com.reactivecascade.functional.*;
import com.reactivecascade.i.action.IOnErrorAction;
import com.reactivecascade.reactive.*;
import com.reactivecascade.rest.PreferencesMirrorService;
import java.util.List;
import static com.reactivecascade.Async.*;
/**
* Created by Paul Houghton on 25/06/2014.
*/
public class PreferencesTest {
private static final String TAG = PreferencesTest.class.getSimpleName();
private final ReactiveValue<String> reactiveValue;
private final PreferencesMirrorService testMirror;
public PreferencesTest(Context context, ReactiveValue<String> reactiveValue) {
this.reactiveValue = reactiveValue;
testMirror = new PreferencesMirrorService("TestMirror", context, FILE, FILE);
}
public void test() throws Exception {
reactiveValue.set("Init");
testMirror.indexAsync()
.then((List<String> index) -> {
IOnErrorAction onError = e -> Async.e(TAG, "Can not assertTrue remove key", e);
for (String key : index) {
reactiveValue.set("Delete key " + key);
testMirror.deleteAsync(key)
.onError(onError)
.fork();
}
AltFuture lastPutAltFuture = null;
onError = e -> Async.e(this, "Can not assertTrue put key", e);
for (int i = 0; i < 1000; i++) {
//TODO Preferences assertTrue is incomplete
// lastPutAltFuture = testMirror.putAsync("Key" + i, "Value" + i, onError)
// .split((IActionOne) v -> bindable.set("Put " + v))
// .fork();
}
// lastPutAltFuture.get(1000, TimeUnit.MILLISECONDS);
})
.fork();
}
}