package com.microsoft.live.unittest; import java.util.concurrent.LinkedBlockingQueue; import org.json.JSONObject; import com.microsoft.live.LiveOperation; import com.microsoft.live.LiveOperationListener; import com.microsoft.live.test.util.AsyncRunnable; import com.microsoft.live.test.util.AsyncRunnableWithBody; import com.microsoft.live.test.util.OperationQueueingListener; public abstract class JsonEnclosingApiTest extends ApiTest<LiveOperation, LiveOperationListener> { protected abstract AsyncRunnableWithBody<LiveOperation, LiveOperationListener> createAsyncRunnable(String requestPath, JSONObject body); protected abstract AsyncRunnableWithBody<LiveOperation, LiveOperationListener> createAsyncRunnable(String requestPath, JSONObject body, Object userState); protected abstract AsyncRunnableWithBody<LiveOperation, LiveOperationListener> createAsyncRunnable(String requestPath, String body); protected abstract AsyncRunnableWithBody<LiveOperation, LiveOperationListener> createAsyncRunnable(String requestPath, String body, Object userState); @Override protected AsyncRunnable<LiveOperation, LiveOperationListener> createAsyncRunnable(String requestPath) { throw new UnsupportedOperationException(); } @Override protected AsyncRunnable<LiveOperation, LiveOperationListener> createAsyncRunnable(String requestPath, Object userState) { throw new UnsupportedOperationException(); } @Override protected void setUp() throws Exception { super.setUp(); this.responseQueue = new LinkedBlockingQueue<LiveOperation>(); this.queueingListener = new OperationQueueingListener(this.exceptionQueue, this.responseQueue); } }