// Path: android-networking/src/main/java/com/androidnetworking/common/ANConstants.java
// public final class ANConstants {
//     public static final int MAX_CACHE_SIZE = 10 * 1024 * 1024;
//     public static final int UPDATE = 0x01;
//     public static final String CACHE_DIR_NAME = "cache_an";
//     public static final String CONNECTION_ERROR = "connectionError";
//     public static final String RESPONSE_FROM_SERVER_ERROR = "responseFromServerError";
//     public static final String REQUEST_CANCELLED_ERROR = "requestCancelledError";
//     public static final String PARSE_ERROR = "parseError";
//     public static final String PREFETCH = "prefetch";
//     public static final String FAST_ANDROID_NETWORKING = "FastAndroidNetworking";
//     public static final String USER_AGENT = "User-Agent";
//     public static final String SUCCESS = "success";
//     public static final String OPTIONS = "OPTIONS";
// }
// 
// Path: rx2-android-networking/src/androidTest/java/com/rx2androidnetworking/model/User.java
// public class User {
// 
//     public String firstName;
//     public String lastName;
// 
// }


import java.util.concurrent.atomic.AtomicReference;
import io.reactivex.Observer;
import io.reactivex.SingleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import static java.util.concurrent.TimeUnit.SECONDS;
import android.app.Application;
import android.test.ApplicationTestCase;
import com.androidnetworking.common.ANConstants;
import com.androidnetworking.error.ANError;
import com.rx2androidnetworking.model.User;
import org.junit.Rule;
import java.util.List;
import java.util.concurrent.CountDownLatch;
/*
 *
 *  *    Copyright (C) 2016 Amit Shekhar
 *  *    Copyright (C) 2011 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.rx2androidnetworking;







/**
 * Created by amitshekhar on 26/04/17.
 */

public class Rx2GetObjectApiTest extends ApplicationTestCase<Application> {

    @Rule
    public final MockWebServer server = new MockWebServer();

    public Rx2GetObjectApiTest() {
        super(Application.class);
    }

    @Override
    public void setUp() throws Exception {
        super.setUp();
        createApplication();
    }

    public void testObjectGetRequest() throws InterruptedException {

        server.enqueue(new MockResponse().setBody("{\"firstName\":\"Amit\", \"lastName\":\"Shekhar\"}"));

        final AtomicReference<String> firstNameRef = new AtomicReference<>();
        final AtomicReference<String> lastNameRef = new AtomicReference<>();
        final AtomicReference<Boolean> isSubscribedRef = new AtomicReference<>();
        final AtomicReference<Boolean> isCompletedRef = new AtomicReference<>();
        final CountDownLatch latch = new CountDownLatch(2);

        Rx2AndroidNetworking.get(server.url("/").toString())
                .build()
// Path: android-networking/src/main/java/com/androidnetworking/common/ANConstants.java
// public final class ANConstants {
//     public static final int MAX_CACHE_SIZE = 10 * 1024 * 1024;
//     public static final int UPDATE = 0x01;
//     public static final String CACHE_DIR_NAME = "cache_an";
//     public static final String CONNECTION_ERROR = "connectionError";
//     public static final String RESPONSE_FROM_SERVER_ERROR = "responseFromServerError";
//     public static final String REQUEST_CANCELLED_ERROR = "requestCancelledError";
//     public static final String PARSE_ERROR = "parseError";
//     public static final String PREFETCH = "prefetch";
//     public static final String FAST_ANDROID_NETWORKING = "FastAndroidNetworking";
//     public static final String USER_AGENT = "User-Agent";
//     public static final String SUCCESS = "success";
//     public static final String OPTIONS = "OPTIONS";
// }
// 
// Path: rx2-android-networking/src/androidTest/java/com/rx2androidnetworking/model/User.java
// public class User {
// 
//     public String firstName;
//     public String lastName;
// 
// }


// Path: rx2-android-networking/src/androidTest/java/com/rx2androidnetworking/Rx2GetObjectApiTest.java
import java.util.concurrent.atomic.AtomicReference;
import io.reactivex.Observer;
import io.reactivex.SingleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import static java.util.concurrent.TimeUnit.SECONDS;
import android.app.Application;
import android.test.ApplicationTestCase;
import com.androidnetworking.common.ANConstants;
import com.androidnetworking.error.ANError;
import com.rx2androidnetworking.model.User;
import org.junit.Rule;
import java.util.List;
import java.util.concurrent.CountDownLatch;

/*
 *
 *  *    Copyright (C) 2016 Amit Shekhar
 *  *    Copyright (C) 2011 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.rx2androidnetworking;







/**
 * Created by amitshekhar on 26/04/17.
 */

public class Rx2GetObjectApiTest extends ApplicationTestCase<Application> {

    @Rule
    public final MockWebServer server = new MockWebServer();

    public Rx2GetObjectApiTest() {
        super(Application.class);
    }

    @Override
    public void setUp() throws Exception {
        super.setUp();
        createApplication();
    }

    public void testObjectGetRequest() throws InterruptedException {

        server.enqueue(new MockResponse().setBody("{\"firstName\":\"Amit\", \"lastName\":\"Shekhar\"}"));

        final AtomicReference<String> firstNameRef = new AtomicReference<>();
        final AtomicReference<String> lastNameRef = new AtomicReference<>();
        final AtomicReference<Boolean> isSubscribedRef = new AtomicReference<>();
        final AtomicReference<Boolean> isCompletedRef = new AtomicReference<>();
        final CountDownLatch latch = new CountDownLatch(2);

        Rx2AndroidNetworking.get(server.url("/").toString())
                .build()
                .getObjectObservable(User.class)