@Test
public void refreshAccessToken() throws IOException{

  final ServerSocket authSocket = new ServerSocket(0);
  Runnable serverTask =
      new Runnable() {
        @Override
        public void run() {
          try {
            Socket clientSocket = authSocket.accept();
            BufferedReader input =
                new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            String lines = input.readLine();
            lines += '\n' + input.readLine();
            assertEquals(CloudShellCredential.GET_AUTH_TOKEN_REQUEST, lines);

            PrintWriter out =
                new PrintWriter(clientSocket.getOutputStream(), true);
            out.println("32\n[\"email\", \"project-id\", \"token\", 1234]");
          } catch (Exception reThrown) {
            throw new RuntimeException(reThrown);
          }
        }
      };
  Thread serverThread = new Thread(serverTask);
  serverThread.start();

  GoogleCredential creds = new CloudShellCredential(
      authSocket.getLocalPort(), GsonFactory.getDefaultInstance());
  assertEquals("token", creds.executeRefreshToken().getAccessToken());
}