package com.kickstarter.libs;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.kickstarter.models.User;
import rx.Observable;
import rx.subjects.BehaviorSubject;
public class MockCurrentUser extends CurrentUserType {
private final BehaviorSubject<User> user = BehaviorSubject.create((User) null);
private @Nullable String accessToken;
public MockCurrentUser() {
user.onNext(null);
}
public MockCurrentUser(final @NonNull User initialUser) {
user.onNext(initialUser);
}
@Override
public void login(final @NonNull User newUser, final @NonNull String accessToken) {
user.onNext(newUser);
this.accessToken = accessToken;
}
@Override
public void logout() {
user.onNext(null);
accessToken = null;
}
@Override
public @Nullable String getAccessToken() {
return accessToken;
}
@Override
public void refresh(final @NonNull User freshUser) {
user.onNext(freshUser);
}
@Override
public Observable<User> observable() {
return user;
}
@Nullable
@Override
public User getUser() {
return user.getValue();
}
}