blob: d72a0f9354052b09994d4a61607e686b1c1a1cc4 [file] [log] [blame]
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.messaging.datamodel.action;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Bundle;
import com.android.messaging.util.ConnectivityUtil;
import java.util.ArrayList;
import java.util.List;
public class ActionTestHelpers {
private static final String TAG = "DataModelTestHelpers";
static class StubLoader extends ContentObserver {
ArrayList<Uri> mUriList = new ArrayList<Uri>();
StubLoader() {
super(null);
}
public void clear() {
mUriList.clear();
}
@Override
public void onChange(final boolean selfChange) {
// Handle change.
mUriList.add(null);
}
// Implement the onChange(boolean, Uri) method to take advantage of the new Uri argument.
// Only supported on platform 16 and above...
@Override
public void onChange(final boolean selfChange, final Uri uri) {
// Handle change.
mUriList.add(uri);
}
}
static class StubBackgroundWorker extends BackgroundWorker {
public StubBackgroundWorker() {
super();
mActions = new ArrayList<Action>();
}
ArrayList<Action> mActions;
public ArrayList<Action> getRequestsMade() {
return mActions;
}
@Override
public void queueBackgroundWork(final List<Action> actions) {
mActions.addAll(actions);
synchronized(this) {
this.notifyAll();
}
}
}
static class ResultTracker {
public Object executionResult;
public Object completionResult;
}
static class StubChatActionMonitor extends ActionMonitor {
static public class StateTransition {
Action action;
int from;
int to;
public StateTransition(final Action action, final int from, final int to) {
this.action = action;
this.from = from;
this.to = to;
}
}
private final ArrayList<StateTransition> mTransitions;
public ArrayList<StateTransition> getTransitions() {
return mTransitions;
}
protected StubChatActionMonitor(final int initialState, final String actionKey,
final Object data) {
super(initialState, actionKey, data);
mTransitions = new ArrayList<StateTransition>();
}
@Override
protected void updateState(final Action action, final int expectedState,
final int state) {
mTransitions.add(new StateTransition(action, mState, state));
super.updateState(action, expectedState, state);
}
public void setState(final int state) {
mState = state;
}
public int getState() {
return mState;
}
}
public static class StubActionService extends ActionService {
public static class StubActionServiceCallLog {
public final Action action;
public final Action request;
public final Bundle response;
public final Exception exception;
public final Action update;
public StubActionServiceCallLog(final Action action,
final Action request,
final Bundle response,
final Exception exception,
final Action update) {
this.action = action;
this.request = request;
this.response = response;
this.exception = exception;
this.update = update;
}
}
private final ArrayList<StubActionServiceCallLog> mServiceCalls =
new ArrayList<StubActionServiceCallLog>();
public ArrayList<StubActionServiceCallLog> getCalls() {
return mServiceCalls;
}
@Override
public void startAction(final Action action) {
mServiceCalls.add(new StubActionServiceCallLog(action, null, null, null, null));
synchronized(this) {
this.notifyAll();
}
}
@Override
public void handleResponseFromBackgroundWorker(final Action request,
final Bundle response) {
mServiceCalls.add(new StubActionServiceCallLog(null, request, response, null, null));
synchronized(this) {
this.notifyAll();
}
}
@Override
protected void handleFailureFromBackgroundWorker(final Action request,
final Exception exception) {
mServiceCalls.add(new StubActionServiceCallLog(null, request, null, exception, null));
synchronized(this) {
this.notifyAll();
}
}
}
public static class StubConnectivityUtil extends ConnectivityUtil {
public StubConnectivityUtil(final Context context) {
super(context);
}
@Override
public void registerForSignalStrength() {
}
@Override
public void unregisterForSignalStrength() {
}
}
}