/*
 * Copyright 2000-2013 JetBrains s.r.o.
 *
 * 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 org.jetbrains.plugins.github;

import org.jetbrains.plugins.github.api.GithubApiUtil;
import org.jetbrains.plugins.github.api.GithubConnection;
import org.jetbrains.plugins.github.api.GithubRepo;
import org.jetbrains.plugins.github.test.GithubTest;
import org.jetbrains.plugins.github.util.GithubAuthData;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assume.assumeNotNull;

/**
 * @author Aleksey Pivovarov
 */
public class GithubRequestPagingTest extends GithubTest {

  @Override
  protected void beforeTest() throws Exception {
    assumeNotNull(myLogin2);
  }

  public void testAvailableRepos() throws Throwable {

    List<GithubRepo> availableRepos = GithubApiUtil.getUserRepos(new GithubConnection(myGitHubSettings.getAuthData()), myLogin2);
    List<String> realData = new ArrayList<String>();
    for (GithubRepo info : availableRepos) {
      realData.add(info.getName());
    }

    List<String> expectedData = new ArrayList<String>();
    for (int i = 1; i <= 251; i++) {
      expectedData.add(String.valueOf(i));
    }

    assertContainsElements(realData, expectedData);
  }
}

@@ -1254,16 +1254,122 @@
 able %7B%0A%0A
+    GithubConnection connection = new GithubConnection(myGitHubSettings.getAuthData(), true);%0A    try %7B%0A  
     List
@@ -1429,60 +1429,18 @@
 pos(
-new GithubConnection(myGitHubSettings.getAuthData())
+connection
 , my
@@ -1448,16 +1448,18 @@
 ogin2);%0A
+  
     List
@@ -1503,24 +1503,26 @@
 ing%3E();%0A    
+  
 for (GithubR
@@ -1556,16 +1556,18 @@
 %7B%0A      
+  
 realData
@@ -1592,23 +1592,27 @@
 ));%0A    
+  
 %7D%0A%0A    
+ 
+ 
 List%3CStr
@@ -1652,24 +1652,26 @@
 %3CString%3E();%0A
+  
     for (int
@@ -1701,16 +1701,18 @@
 %7B%0A      
+  
 expected
@@ -1740,27 +1740,31 @@
 Of(i));%0A    
+ 
+ 
 %7D%0A%0A
+  
     assertCo
@@ -1803,14 +1803,66 @@
 dData);%0A
+    %7D%0A    finally %7B%0A      connection.close();%0A    %7D%0A
   %7D%0A%7D%0A

fix test