54 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule Kaffy.PaginationTest do
 | 
						|
  alias Kaffy.Pagination
 | 
						|
  use ExUnit.Case
 | 
						|
 | 
						|
  # testing for get_pages(current_page, total_page)
 | 
						|
 | 
						|
  test "test on emtpy pages" do
 | 
						|
    pages = Pagination.get_pages(0, 0)
 | 
						|
    assert pages == []
 | 
						|
  end
 | 
						|
 | 
						|
  test "test on low get_pages" do
 | 
						|
    assert Pagination.get_pages(1, 1) == [1]
 | 
						|
    assert Pagination.get_pages(1, 2) == [1, 2]
 | 
						|
    assert Pagination.get_pages(1, 3) == [1, 2, 3]
 | 
						|
    assert Pagination.get_pages(1, 4) == [1, 2, 3, 4]
 | 
						|
    assert Pagination.get_pages(1, 5) == [1, 2, 3, 4, 5]
 | 
						|
    assert Pagination.get_pages(1, 6) == [1, 2, 3, "...", 6]
 | 
						|
  end
 | 
						|
 | 
						|
  test "test on pagination 10" do
 | 
						|
    pages = Pagination.get_pages(5, 10)
 | 
						|
    assert pages == [1, 2, 3, 4, 5, 6, 7, "...", 10]
 | 
						|
  end
 | 
						|
 | 
						|
  test "test on pagination 20" do
 | 
						|
    test_list_20 = [
 | 
						|
      {1, [1, 2, 3, "...", 20]},
 | 
						|
      {2, [1, 2, 3, 4, "...", 20]},
 | 
						|
      {3, [1, 2, 3, 4, 5, "...", 20]},
 | 
						|
      {4, [1, 2, 3, 4, 5, 6, "...", 20]},
 | 
						|
      {5, [1, 2, 3, 4, 5, 6, 7, "...", 20]},
 | 
						|
      {6, [1, "...", 4, 5, 6, 7, 8, "...", 20]},
 | 
						|
      {7, [1, "...", 5, 6, 7, 8, 9, "...", 20]},
 | 
						|
      {8, [1, "...", 6, 7, 8, 9, 10, "...", 20]},
 | 
						|
      {9, [1, "...", 7, 8, 9, 10, 11, "...", 20]},
 | 
						|
      {10, [1, "...", 8, 9, 10, 11, 12, "...", 20]},
 | 
						|
      {11, [1, "...", 9, 10, 11, 12, 13, "...", 20]},
 | 
						|
      {12, [1, "...", 10, 11, 12, 13, 14, "...", 20]},
 | 
						|
      {13, [1, "...", 11, 12, 13, 14, 15, "...", 20]},
 | 
						|
      {14, [1, "...", 12, 13, 14, 15, 16, "...", 20]},
 | 
						|
      {15, [1, "...", 13, 14, 15, 16, 17, "...", 20]},
 | 
						|
      {16, [1, "...", 14, 15, 16, 17, 18, 19, 20]},
 | 
						|
      {17, [1, "...", 15, 16, 17, 18, 19, 20]},
 | 
						|
      {18, [1, "...", 16, 17, 18, 19, 20]},
 | 
						|
      {19, [1, "...", 17, 18, 19, 20]},
 | 
						|
      {20, [1, "...", 18, 19, 20]}
 | 
						|
    ]
 | 
						|
 | 
						|
    Enum.map(test_list_20, fn {x, y} ->
 | 
						|
      assert Pagination.get_pages(x, 20) == y
 | 
						|
    end)
 | 
						|
  end
 | 
						|
end
 |