|
@@ 1783-1879 (lines=97) @@
|
| 1780 |
|
$this->assertSame($expectedJson, $scope->toJson()); |
| 1781 |
|
} |
| 1782 |
|
|
| 1783 |
|
public function testSerializingCollectionResourceWithPaginatorWithOmittedUnavailablePreviousLink() |
| 1784 |
|
{ |
| 1785 |
|
$baseUrl = 'http://example.com'; |
| 1786 |
|
|
| 1787 |
|
$this->manager->setSerializer(new JsonApiSerializer($baseUrl)); |
| 1788 |
|
|
| 1789 |
|
$total = 10; |
| 1790 |
|
$count = 2; |
| 1791 |
|
$perPage = 2; |
| 1792 |
|
$currentPage = 1; |
| 1793 |
|
$lastPage = 5; |
| 1794 |
|
$currentUrl = 'http://example.com/books/?page=1'; |
| 1795 |
|
$nextUrl = 'http://example.com/books/?page=2'; |
| 1796 |
|
$lastUrl = 'http://example.com/books/?page=5'; |
| 1797 |
|
|
| 1798 |
|
$paginator = Mockery::mock('League\Fractal\Pagination\PaginatorInterface'); |
| 1799 |
|
$paginator->shouldReceive('getCurrentPage')->andReturn($currentPage); |
| 1800 |
|
$paginator->shouldReceive('getLastPage')->andReturn($lastPage); |
| 1801 |
|
$paginator->shouldReceive('getTotal')->andReturn($total); |
| 1802 |
|
$paginator->shouldReceive('getCount')->andReturn($count); |
| 1803 |
|
$paginator->shouldReceive('getPerPage')->andReturn($perPage); |
| 1804 |
|
$paginator->shouldReceive('getUrl')->with(1)->andReturn($currentUrl); |
| 1805 |
|
$paginator->shouldReceive('getUrl')->with(2)->andReturn($nextUrl); |
| 1806 |
|
$paginator->shouldReceive('getUrl')->with(5)->andReturn($lastUrl); |
| 1807 |
|
|
| 1808 |
|
$booksData = [ |
| 1809 |
|
[ |
| 1810 |
|
'id' => 1, |
| 1811 |
|
'title' => 'Foo', |
| 1812 |
|
'year' => '1991', |
| 1813 |
|
'_author' => [ |
| 1814 |
|
'id' => 1, |
| 1815 |
|
'name' => 'Dave', |
| 1816 |
|
], |
| 1817 |
|
], |
| 1818 |
|
[ |
| 1819 |
|
'id' => 2, |
| 1820 |
|
'title' => 'Bar', |
| 1821 |
|
'year' => '1997', |
| 1822 |
|
'_author' => [ |
| 1823 |
|
'id' => 2, |
| 1824 |
|
'name' => 'Bob', |
| 1825 |
|
], |
| 1826 |
|
], |
| 1827 |
|
]; |
| 1828 |
|
|
| 1829 |
|
$resource = new Collection($booksData, new JsonApiBookTransformer(), 'books'); |
| 1830 |
|
$resource->setPaginator($paginator); |
| 1831 |
|
$scope = new Scope($this->manager, $resource); |
| 1832 |
|
|
| 1833 |
|
$expected = [ |
| 1834 |
|
'data' => [ |
| 1835 |
|
[ |
| 1836 |
|
'type' => 'books', |
| 1837 |
|
'id' => '1', |
| 1838 |
|
'attributes' => [ |
| 1839 |
|
'title' => 'Foo', |
| 1840 |
|
'year' => 1991, |
| 1841 |
|
], |
| 1842 |
|
'links' => [ |
| 1843 |
|
'self' => 'http://example.com/books/1', |
| 1844 |
|
], |
| 1845 |
|
], |
| 1846 |
|
[ |
| 1847 |
|
'type' => 'books', |
| 1848 |
|
'id' => '2', |
| 1849 |
|
'attributes' => [ |
| 1850 |
|
'title' => 'Bar', |
| 1851 |
|
'year' => 1997, |
| 1852 |
|
], |
| 1853 |
|
'links' => [ |
| 1854 |
|
'self' => 'http://example.com/books/2', |
| 1855 |
|
], |
| 1856 |
|
], |
| 1857 |
|
], |
| 1858 |
|
'meta' => [ |
| 1859 |
|
'pagination' => [ |
| 1860 |
|
'total' => 10, |
| 1861 |
|
'count' => 2, |
| 1862 |
|
'per_page' => 2, |
| 1863 |
|
'current_page' => 1, |
| 1864 |
|
'total_pages' => 5 |
| 1865 |
|
] |
| 1866 |
|
], |
| 1867 |
|
'links' => [ |
| 1868 |
|
'self' => 'http://example.com/books/?page=1', |
| 1869 |
|
'first' => 'http://example.com/books/?page=1', |
| 1870 |
|
'next' => 'http://example.com/books/?page=2', |
| 1871 |
|
'last' => 'http://example.com/books/?page=5' |
| 1872 |
|
] |
| 1873 |
|
]; |
| 1874 |
|
|
| 1875 |
|
$this->assertSame($expected, $scope->toArray()); |
| 1876 |
|
|
| 1877 |
|
$expectedJson = '{"data":[{"type":"books","id":"1","attributes":{"title":"Foo","year":1991},"links":{"self":"http:\/\/example.com\/books\/1"}},{"type":"books","id":"2","attributes":{"title":"Bar","year":1997},"links":{"self":"http:\/\/example.com\/books\/2"}}],"meta":{"pagination":{"total":10,"count":2,"per_page":2,"current_page":1,"total_pages":5}},"links":{"self":"http:\/\/example.com\/books\/?page=1","first":"http:\/\/example.com\/books\/?page=1","next":"http:\/\/example.com\/books\/?page=2","last":"http:\/\/example.com\/books\/?page=5"}}'; |
| 1878 |
|
$this->assertSame($expectedJson, $scope->toJson()); |
| 1879 |
|
} |
| 1880 |
|
|
| 1881 |
|
public function testSerializingCollectionResourceWithPaginatorWithOmittedUnavailableNextLink() |
| 1882 |
|
{ |
|
@@ 1881-1977 (lines=97) @@
|
| 1878 |
|
$this->assertSame($expectedJson, $scope->toJson()); |
| 1879 |
|
} |
| 1880 |
|
|
| 1881 |
|
public function testSerializingCollectionResourceWithPaginatorWithOmittedUnavailableNextLink() |
| 1882 |
|
{ |
| 1883 |
|
$baseUrl = 'http://example.com'; |
| 1884 |
|
|
| 1885 |
|
$this->manager->setSerializer(new JsonApiSerializer($baseUrl)); |
| 1886 |
|
|
| 1887 |
|
$total = 10; |
| 1888 |
|
$count = 2; |
| 1889 |
|
$perPage = 2; |
| 1890 |
|
$currentPage = 5; |
| 1891 |
|
$lastPage = 5; |
| 1892 |
|
$firstUrl = 'http://example.com/books/?page=1'; |
| 1893 |
|
$previousUrl = 'http://example.com/books/?page=4'; |
| 1894 |
|
$lastUrl = 'http://example.com/books/?page=5'; |
| 1895 |
|
|
| 1896 |
|
$paginator = Mockery::mock('League\Fractal\Pagination\PaginatorInterface'); |
| 1897 |
|
$paginator->shouldReceive('getCurrentPage')->andReturn($currentPage); |
| 1898 |
|
$paginator->shouldReceive('getLastPage')->andReturn($lastPage); |
| 1899 |
|
$paginator->shouldReceive('getTotal')->andReturn($total); |
| 1900 |
|
$paginator->shouldReceive('getCount')->andReturn($count); |
| 1901 |
|
$paginator->shouldReceive('getPerPage')->andReturn($perPage); |
| 1902 |
|
$paginator->shouldReceive('getUrl')->with(1)->andReturn($firstUrl); |
| 1903 |
|
$paginator->shouldReceive('getUrl')->with(4)->andReturn($previousUrl); |
| 1904 |
|
$paginator->shouldReceive('getUrl')->with(5)->andReturn($lastUrl); |
| 1905 |
|
|
| 1906 |
|
$booksData = [ |
| 1907 |
|
[ |
| 1908 |
|
'id' => 1, |
| 1909 |
|
'title' => 'Foo', |
| 1910 |
|
'year' => '1991', |
| 1911 |
|
'_author' => [ |
| 1912 |
|
'id' => 1, |
| 1913 |
|
'name' => 'Dave', |
| 1914 |
|
], |
| 1915 |
|
], |
| 1916 |
|
[ |
| 1917 |
|
'id' => 2, |
| 1918 |
|
'title' => 'Bar', |
| 1919 |
|
'year' => '1997', |
| 1920 |
|
'_author' => [ |
| 1921 |
|
'id' => 2, |
| 1922 |
|
'name' => 'Bob', |
| 1923 |
|
], |
| 1924 |
|
], |
| 1925 |
|
]; |
| 1926 |
|
|
| 1927 |
|
$resource = new Collection($booksData, new JsonApiBookTransformer(), 'books'); |
| 1928 |
|
$resource->setPaginator($paginator); |
| 1929 |
|
$scope = new Scope($this->manager, $resource); |
| 1930 |
|
|
| 1931 |
|
$expected = [ |
| 1932 |
|
'data' => [ |
| 1933 |
|
[ |
| 1934 |
|
'type' => 'books', |
| 1935 |
|
'id' => '1', |
| 1936 |
|
'attributes' => [ |
| 1937 |
|
'title' => 'Foo', |
| 1938 |
|
'year' => 1991, |
| 1939 |
|
], |
| 1940 |
|
'links' => [ |
| 1941 |
|
'self' => 'http://example.com/books/1', |
| 1942 |
|
], |
| 1943 |
|
], |
| 1944 |
|
[ |
| 1945 |
|
'type' => 'books', |
| 1946 |
|
'id' => '2', |
| 1947 |
|
'attributes' => [ |
| 1948 |
|
'title' => 'Bar', |
| 1949 |
|
'year' => 1997, |
| 1950 |
|
], |
| 1951 |
|
'links' => [ |
| 1952 |
|
'self' => 'http://example.com/books/2', |
| 1953 |
|
], |
| 1954 |
|
], |
| 1955 |
|
], |
| 1956 |
|
'meta' => [ |
| 1957 |
|
'pagination' => [ |
| 1958 |
|
'total' => 10, |
| 1959 |
|
'count' => 2, |
| 1960 |
|
'per_page' => 2, |
| 1961 |
|
'current_page' => 5, |
| 1962 |
|
'total_pages' => 5 |
| 1963 |
|
] |
| 1964 |
|
], |
| 1965 |
|
'links' => [ |
| 1966 |
|
'self' => 'http://example.com/books/?page=5', |
| 1967 |
|
'first' => 'http://example.com/books/?page=1', |
| 1968 |
|
'prev' => 'http://example.com/books/?page=4', |
| 1969 |
|
'last' => 'http://example.com/books/?page=5' |
| 1970 |
|
] |
| 1971 |
|
]; |
| 1972 |
|
|
| 1973 |
|
$this->assertSame($expected, $scope->toArray()); |
| 1974 |
|
|
| 1975 |
|
$expectedJson = '{"data":[{"type":"books","id":"1","attributes":{"title":"Foo","year":1991},"links":{"self":"http:\/\/example.com\/books\/1"}},{"type":"books","id":"2","attributes":{"title":"Bar","year":1997},"links":{"self":"http:\/\/example.com\/books\/2"}}],"meta":{"pagination":{"total":10,"count":2,"per_page":2,"current_page":5,"total_pages":5}},"links":{"self":"http:\/\/example.com\/books\/?page=5","first":"http:\/\/example.com\/books\/?page=1","prev":"http:\/\/example.com\/books\/?page=4","last":"http:\/\/example.com\/books\/?page=5"}}'; |
| 1976 |
|
$this->assertSame($expectedJson, $scope->toJson()); |
| 1977 |
|
} |
| 1978 |
|
|
| 1979 |
|
public function tearDown() |
| 1980 |
|
{ |