Android Open Source - octodroid Pagination Header Parser Test






From Project

Back to project page octodroid.

License

The source code is released under:

MIT License

If you think the Android project octodroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.rejasupotaro.octodroid.http;
//  w  ww .  jav  a 2 s.  c o m
import android.support.test.runner.AndroidJUnit4;

import com.squareup.okhttp.Headers;

import org.junit.Test;
import org.junit.runner.RunWith;

import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;

@RunWith(AndroidJUnit4.class)
public class PaginationHeaderParserTest {

    @Test
    public void parse() throws Exception {
        {
            Pagination pagination = PaginationHeaderParser.parse((Response<?>) null);
            assertNotNull(pagination);
        }
        {
            Pagination pagination = PaginationHeaderParser.parse((Headers) null);
            assertNotNull(pagination);
        }
        {
            String link = "</resource?page=2&per_page=50>; rel=\"prev\"";
            Headers headers = new Headers.Builder()
                    .add(PaginationHeaderParser.HEADER_KEY_LINK, link)
                    .build();

            Pagination pagination = PaginationHeaderParser.parse(headers);
            assertNotNull(pagination);
            assertTrue(pagination.hasPrev());
            assertFalse(pagination.hasNext());
            assertFalse(pagination.hasLast());

            Link prevLink = pagination.getPrevLink();
            assertNotNull(prevLink);
            assertEquals(Link.Rel.PREV, prevLink.getRel());
            assertEquals(2, prevLink.getPage());
            assertEquals(50, prevLink.getPerPage());

            Link nextLink = pagination.getNextLink();
            assertNull(nextLink);

            Link lastLink = pagination.getLastLink();
            assertNull(lastLink);
        }
        {
            String link = "</resource?page=1&per_page=100>; rel=\"first\"; page=\"1\", "
                    + "</resource?page=3&per_page=100>; rel=\"prev\"; page=\"2\", "
                    + "</resource?page=5&per_page=100>; rel=\"next\"; page=\"4\", "
                    + "</resource?page=50&per_page=100>; rel=\"last\"; page=\"6\"";
            Headers headers = new Headers.Builder()
                    .add(PaginationHeaderParser.HEADER_KEY_LINK, link)
                    .build();

            Pagination pagination = PaginationHeaderParser.parse(headers);
            assertNotNull(pagination);
            assertTrue(pagination.hasPrev());
            assertTrue(pagination.hasNext());
            assertTrue(pagination.hasLast());

            Link firstLink = pagination.getFirstLink();
            assertNotNull(firstLink);
            assertEquals(Link.Rel.FIRST, firstLink.getRel());
            assertEquals(1, firstLink.getPage());
            assertEquals(100, firstLink.getPerPage());

            Link prevLink = pagination.getPrevLink();
            assertNotNull(prevLink);
            assertEquals(Link.Rel.PREV, prevLink.getRel());
            assertEquals(3, prevLink.getPage());
            assertEquals(100, prevLink.getPerPage());

            Link nextLink = pagination.getNextLink();
            assertNotNull(nextLink);
            assertEquals(Link.Rel.NEXT, nextLink.getRel());
            assertEquals(5, nextLink.getPage());
            assertEquals(100, nextLink.getPerPage());

            Link lastLink = pagination.getLastLink();
            assertNotNull(lastLink);
            assertEquals(Link.Rel.LAST, lastLink.getRel());
            assertEquals(50, lastLink.getPage());
            assertEquals(100, lastLink.getPerPage());
        }
    }
}




Java Source Code List

com.example.octodroid.ApplicationTest.java
com.example.octodroid.MyApplication.java
com.example.octodroid.SessionPrefsSchema.java
com.example.octodroid.activities.LoginActivity.java
com.example.octodroid.activities.MainActivity.java
com.example.octodroid.activities.SearchResultActivity.java
com.example.octodroid.adapters.HottestRepositoryAdapter.java
com.example.octodroid.adapters.SearchResultAdapter.java
com.example.octodroid.views.DividerItemDecoration.java
com.example.octodroid.views.MoreLoadScrollListener.java
com.example.octodroid.views.ProfileView.java
com.example.octodroid.views.helpers.ProgressDialogHelper.java
com.example.octodroid.views.helpers.ToastHelper.java
com.example.octodroid.views.holders.ProgressViewHolder.java
com.example.octodroid.views.holders.RepositoryItemViewHolder.java
com.rejasupotaro.octodroid.ApplicationTest.java
com.rejasupotaro.octodroid.AuthenticationRequired.java
com.rejasupotaro.octodroid.ConnectivityObserver.java
com.rejasupotaro.octodroid.GitHubClient.java
com.rejasupotaro.octodroid.GitHub.java
com.rejasupotaro.octodroid.GsonProvider.java
com.rejasupotaro.octodroid.http.AbstractClient.java
com.rejasupotaro.octodroid.http.ApiClient.java
com.rejasupotaro.octodroid.http.CacheControl.java
com.rejasupotaro.octodroid.http.Header.java
com.rejasupotaro.octodroid.http.Link.java
com.rejasupotaro.octodroid.http.Method.java
com.rejasupotaro.octodroid.http.PaginationHeaderParserTest.java
com.rejasupotaro.octodroid.http.PaginationHeaderParser.java
com.rejasupotaro.octodroid.http.Pagination.java
com.rejasupotaro.octodroid.http.RequestCreator.java
com.rejasupotaro.octodroid.http.Response.java
com.rejasupotaro.octodroid.http.params.All.java
com.rejasupotaro.octodroid.http.params.Order.java
com.rejasupotaro.octodroid.http.params.Participating.java
com.rejasupotaro.octodroid.http.params.Sort.java
com.rejasupotaro.octodroid.http.params.Type.java
com.rejasupotaro.octodroid.models.Notification.java
com.rejasupotaro.octodroid.models.Plan.java
com.rejasupotaro.octodroid.models.Repository.java
com.rejasupotaro.octodroid.models.Resource.java
com.rejasupotaro.octodroid.models.SearchResult.java
com.rejasupotaro.octodroid.models.Subject.java
com.rejasupotaro.octodroid.models.User.java