Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.softdesign.mvpauth.data.manager;
- import com.softdesign.mvpauth.data.network.RestService;
- import com.softdesign.mvpauth.data.network.error.AccessError;
- import com.softdesign.mvpauth.data.network.req.UserLoginReq;
- import com.softdesign.mvpauth.data.network.res.UserRes;
- import com.softdesign.mvpauth.resources.MockResponses;
- import com.softdesign.mvpauth.utils.ConstantManager;
- import com.squareup.moshi.Moshi;
- import org.junit.After;
- import org.junit.Assert;
- import org.junit.Before;
- import org.junit.Test;
- import okhttp3.OkHttpClient;
- import okhttp3.mockwebserver.MockResponse;
- import okhttp3.mockwebserver.MockWebServer;
- import retrofit2.Retrofit;
- import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
- import retrofit2.converter.moshi.MoshiConverterFactory;
- import rx.observers.TestSubscriber;
- import static org.junit.Assert.*;
- /**
- * Created by root on 30.03.2017.
- */
- public class DataManagerTest {
- private Retrofit testRetrofit;
- private RestService testRestService;
- private MockWebServer testMockWebServer;
- private DataManager testDataManager;
- private TestSubscriber<UserRes> testSubscriber;
- @Before
- public void setUp() throws Exception {
- testMockWebServer = new MockWebServer();
- testRetrofit = new Retrofit.Builder()
- .baseUrl(testMockWebServer.url("").toString())
- .addConverterFactory(MoshiConverterFactory.create(new Moshi.Builder()
- // Для того чтобы тестировать разбор ответа от сервера, тут могут быть ваши кастомные адаптеры
- .build()))
- .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) // для поддержки RX
- .client(new OkHttpClient.Builder()
- // тут конфигурируем тестовый клиент (при необходимости)
- .build())
- .build();
- testRestService = testRetrofit.create(RestService.class);
- testDataManager = new DataManager(testRestService);
- testSubscriber = new TestSubscriber<>();
- }
- @After
- public void tearDown() throws Exception {
- testMockWebServer.shutdown();
- testSubscriber.unsubscribe();
- }
- @Test
- public void loginUser_200_OK() throws Exception {
- MockResponse mockResponse = new MockResponse()
- .setHeader(ConstantManager.LAST_MODIFIED_HEADER, "Wed, 15 Nov 1995 04:58:08 GMT")
- .setBody(MockResponses.USER_RES_200);
- testMockWebServer.enqueue(mockResponse);
- testDataManager.loginUser(new UserLoginReq("anyemail@mail.ru", "password"))
- .subscribe(userRes -> {
- assertNotNull(userRes);
- assertEquals("Вася",userRes.getFullName());
- }, throwable -> {
- Assert.fail();});
- }
- @Test
- public void loginUser_200_RX_COMPLETED() throws Exception {
- MockResponse mockResponse = new MockResponse()
- .setHeader(ConstantManager.LAST_MODIFIED_HEADER, "Wed, 15 Nov 1995 04:58:08 GMT")
- .setBody(MockResponses.USER_RES_200);
- testMockWebServer.enqueue(mockResponse);
- testDataManager.loginUser(new UserLoginReq("anyemail@mail.ru", "password"))
- .subscribe(testSubscriber);
- testSubscriber.assertCompleted();
- testSubscriber.assertNoErrors();
- }
- @Test
- public void loginUser_403_FORBIDDEN() throws Exception {
- MockResponse mockResponse = new MockResponse()
- .setResponseCode(403);
- testMockWebServer.enqueue(mockResponse);
- testDataManager.loginUser(new UserLoginReq("anyemail@mail.ru", "password"))
- .subscribe(userRes -> {
- Assert.fail();
- }, throwable -> {
- assertNotNull(throwable);
- assertEquals("Неверный логин или пароль", throwable.getMessage());
- });
- }
- @Test
- public void loginUser_403_RX_THROWABLE() throws Exception {
- MockResponse mockResponse = new MockResponse()
- .setResponseCode(403);
- testMockWebServer.enqueue(mockResponse);
- testDataManager.loginUser(new UserLoginReq("anyemail@mail.ru", "password"))
- .subscribe(testSubscriber);
- testSubscriber.assertError(AccessError.class);
- }
- }
Add Comment
Please, Sign In to add comment