// Path: chronos/src/androidTest/java/com/redmadrobot/chronos/mock/operation/SimpleErrorOperation.java
// public final class SimpleErrorOperation extends ChronosOperation<String> {
// 
//     private final static RuntimeException EXCEPTION = new RuntimeException("Test exception");
// 
//     @Contract("null -> false")
//     public static boolean isExpectedException(@Nullable final Exception exception) {
//         return exception != null && exception.equals(EXCEPTION);
//     }
// 
//     @Nullable
//     @Override
//     public String run() {
//         sleep(TestSettings.OPERATION_WAIT);
//         throw EXCEPTION;
//     }
// 
//     @NonNull
//     @Override
//     public Class<? extends ChronosOperationResult<String>> getResultClass() {
//         return SimpleOperationResult.class;
//     }
// }
// 
// Path: chronos/src/androidTest/java/com/redmadrobot/chronos/mock/operation/SimpleOperation.java
// public final class SimpleOperation extends ChronosOperation<String> {
// 
//     private final String mInput;
// 
//     public SimpleOperation(@NonNull final String input) {
//         mInput = input;
//     }
// 
//     @Nullable
//     @Override
//     public String run() {
//         final String result = transform(mInput);
//         sleep(TestSettings.OPERATION_WAIT);
//         return result;
//     }
// 
//     public static boolean isTransform(@NonNull final String input, @Nullable final String output) {
//         return output != null && transform(input).equals(output);
//     }
// 
//     @NonNull
//     private static String transform(@NonNull final String input) {
//         return input.concat(input);
//     }
// 
//     @NonNull
//     @Override
//     public Class<? extends ChronosOperationResult<String>> getResultClass() {
//         return SimpleOperationResult.class;
//     }
// 
// }
// 
// Path: chronos/src/androidTest/java/com/redmadrobot/chronos/mock/operation/SimpleOperationResult.java
// public final class SimpleOperationResult extends ChronosOperationResult<String> {
// 
// }


import com.redmadrobot.chronos.mock.operation.SimpleErrorOperation;
import com.redmadrobot.chronos.mock.operation.SimpleOperation;
import com.redmadrobot.chronos.mock.operation.SimpleOperationResult;
import org.jetbrains.annotations.Contract;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
package com.redmadrobot.chronos.mock.gui;




/**
 * Activity that can do a pre-defined operations and report its status.
 *
 * @author maximefimov
 */
public final class SimpleMockActivity extends MockActivity {

    private final static String OPERATION_TAG = "activity_operation_tag";

    private String mResult;

    private Exception mError;

    private String mBroadcastResult;

    private Exception mBroadcastError;

    private int mResultObtained = 0;

    private int mBroadcastResultObtained = 0;

    @Nullable
    public String getResult() {
        return mResult;
    }

    @Nullable
    public Exception getError() {
        return mError;
    }

    @Nullable
    public String getBroadcastResult() {
        return mBroadcastResult;
    }

    @Nullable
    public Exception getBroadcastError() {
// Path: chronos/src/androidTest/java/com/redmadrobot/chronos/mock/operation/SimpleErrorOperation.java
// public final class SimpleErrorOperation extends ChronosOperation<String> {
// 
//     private final static RuntimeException EXCEPTION = new RuntimeException("Test exception");
// 
//     @Contract("null -> false")
//     public static boolean isExpectedException(@Nullable final Exception exception) {
//         return exception != null && exception.equals(EXCEPTION);
//     }
// 
//     @Nullable
//     @Override
//     public String run() {
//         sleep(TestSettings.OPERATION_WAIT);
//         throw EXCEPTION;
//     }
// 
//     @NonNull
//     @Override
//     public Class<? extends ChronosOperationResult<String>> getResultClass() {
//         return SimpleOperationResult.class;
//     }
// }
// 
// Path: chronos/src/androidTest/java/com/redmadrobot/chronos/mock/operation/SimpleOperation.java
// public final class SimpleOperation extends ChronosOperation<String> {
// 
//     private final String mInput;
// 
//     public SimpleOperation(@NonNull final String input) {
//         mInput = input;
//     }
// 
//     @Nullable
//     @Override
//     public String run() {
//         final String result = transform(mInput);
//         sleep(TestSettings.OPERATION_WAIT);
//         return result;
//     }
// 
//     public static boolean isTransform(@NonNull final String input, @Nullable final String output) {
//         return output != null && transform(input).equals(output);
//     }
// 
//     @NonNull
//     private static String transform(@NonNull final String input) {
//         return input.concat(input);
//     }
// 
//     @NonNull
//     @Override
//     public Class<? extends ChronosOperationResult<String>> getResultClass() {
//         return SimpleOperationResult.class;
//     }
// 
// }
// 
// Path: chronos/src/androidTest/java/com/redmadrobot/chronos/mock/operation/SimpleOperationResult.java
// public final class SimpleOperationResult extends ChronosOperationResult<String> {
// 
// }


// Path: chronos/src/androidTest/java/com/redmadrobot/chronos/mock/gui/SimpleMockActivity.java
import com.redmadrobot.chronos.mock.operation.SimpleErrorOperation;
import com.redmadrobot.chronos.mock.operation.SimpleOperation;
import com.redmadrobot.chronos.mock.operation.SimpleOperationResult;
import org.jetbrains.annotations.Contract;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

package com.redmadrobot.chronos.mock.gui;




/**
 * Activity that can do a pre-defined operations and report its status.
 *
 * @author maximefimov
 */
public final class SimpleMockActivity extends MockActivity {

    private final static String OPERATION_TAG = "activity_operation_tag";

    private String mResult;

    private Exception mError;

    private String mBroadcastResult;

    private Exception mBroadcastError;

    private int mResultObtained = 0;

    private int mBroadcastResultObtained = 0;

    @Nullable
    public String getResult() {
        return mResult;
    }

    @Nullable
    public Exception getError() {
        return mError;
    }

    @Nullable
    public String getBroadcastResult() {
        return mBroadcastResult;
    }

    @Nullable
    public Exception getBroadcastError() {
        return mBroadcastError;