@Test
  public void testCloseSessionByNormalUser() throws Exception {
    String sessionIdString = "555";
    String actionString = Action.CloseSession.toString();
    long sessionIdLong = Long.parseLong(sessionIdString);
    when(mockHttpServletRequest.getParameter(ServletUtil.ACTION)).thenReturn(actionString);
    when(mockHttpServletRequest.getParameter(ServletUtil.SESSION_ID)).thenReturn(sessionIdString);

    // set AuthenticateOneTimeUser false
    prepareEnterAuthenticateOneTimeUser(false);
    User user = stubbingCheckUser();

    UsersCache userCacheHelper = mock(UsersCache.class);
    mockStatic(UsersCacheFactory.class);
    when(UsersCacheFactory.getInstance()).thenReturn(userCacheHelper);
    doNothing().when(userCacheHelper);
    userCacheHelper.remove(sessionIdLong);

    // RUN...
    defaultConnectionStrategy.execute(mockHttpServletRequest, mockHttpServletResponse);

    verifyNecessaryChecks(actionString);

    verifyStatic(org.mockito.Mockito.times(1));
    ConnectionUtil.checkUser(loginString, password, false);

    PrintWriter writer = mockHttpServletResponse.getWriter();
    writer.flush();
    System.out.println(outStringWriter.toString());
    // ASSERT...
    assertThat(outStringWriter.toString(), is("RESPONSE:" + String.valueOf(sessionIdLong)));
  }
  @Test
  public void testOpenSessionByNormalUser() throws Exception {
    long sessionLong = 555;
    String actionString = Action.OpenSession.toString();
    when(mockHttpServletRequest.getParameter(ServletUtil.ACTION)).thenReturn(actionString);
    when(mockHttpServletRequest.getParameter(ServletUtil.PROJECT)).thenReturn(projectString);

    // set AuthenticateOneTimeUser false
    prepareEnterAuthenticateOneTimeUser(false);
    User user = stubbingCheckUser();

    UsersCache userCacheHelper = mock(UsersCache.class);
    mockStatic(UsersCacheFactory.class);
    when(UsersCacheFactory.getInstance()).thenReturn(userCacheHelper);
    when(userCacheHelper.logWithProjectLabel(loginString, CLIENT_TYPE, projectString))
        .thenReturn(sessionLong);

    // RUN...
    defaultConnectionStrategy.execute(mockHttpServletRequest, mockHttpServletResponse);

    verifyNecessaryChecks(actionString);

    verifyStatic(org.mockito.Mockito.times(1));
    ConnectionUtil.checkUser(loginString, password, false);

    PrintWriter writer = mockHttpServletResponse.getWriter();
    writer.flush();
    System.out.println(outStringWriter.toString());
    // ASSERT...
    assertThat(outStringWriter.toString(), is("RESPONSE:" + String.valueOf(sessionLong)));
  }
  /**
   * DOC Administrator Comment method "setUp".
   *
   * @throws java.lang.Exception
   */
  @Before
  public void setUp() throws Exception {
    mockHttpServletRequest = mock(HttpServletRequest.class);
    mockHttpServletResponse = mock(HttpServletResponse.class);

    defaultConnectionStrategy = DefaultConnectionStrategy.getInstance();

    mockStatic(LicenseUtil.class);
    when(LicenseUtil.getInstance()).thenReturn(mock(LicenseUtil.class));

    outStringWriter = new StringWriter();
    PrintWriter outPrintWriter = new PrintWriter(outStringWriter);
    when(mockHttpServletResponse.getWriter()).thenReturn(outPrintWriter);

    password = ConnectionUtil.computePassword(passwdString);
  }
  @Before
  public void setUp() throws Exception {
    MockitoAnnotations.initMocks(this);
    mExecutor = new TestExecutorService(new FakeClock());
    mLocalVideoThumbnailProducer = new LocalVideoThumbnailProducer(mExecutor);
    mFile = new File(Robolectric.application.getExternalFilesDir(null), TEST_FILENAME);

    mockStatic(ThumbnailUtils.class);
    mProducerContext =
        new SettableProducerContext(
            mImageRequest,
            mRequestId,
            mProducerListener,
            mock(Object.class),
            ImageRequest.RequestLevel.FULL_FETCH,
            false,
            false,
            Priority.MEDIUM);
    when(mImageRequest.getSourceFile()).thenReturn(mFile);
  }
  /**
   * Test method for {@link
   * org.talend.gwtadministrator.server.remoteconnection.strategy.DefaultConnectionStrategy#execute(javax.servlet.http.HttpServletRequest,
   * javax.servlet.http.HttpServletResponse)} .
   */
  @Test
  public void testCheckVersionAction() throws Exception {

    String actionString = Action.CheckVersion.toString();
    String serverVersion = "5.1.0RC1.81648"; // serverVersion

    when(mockHttpServletRequest.getParameter(ServletUtil.ACTION)).thenReturn(actionString);
    when(mockHttpServletRequest.getParameter(ServletUtil.VERSION)).thenReturn(versionString);

    String cleanClientVersion = ConnectionUtil.removeUselessChars(versionString);
    String cleanServerVersion = ConnectionUtil.removeUselessChars(serverVersion);

    mockStatic(BrandingHelper.class);
    when(BrandingHelper.getVersionDotRelease()).thenReturn(serverVersion);

    spy(ConnectionUtil.class);

    // RUN...
    defaultConnectionStrategy.execute(mockHttpServletRequest, mockHttpServletResponse);

    verifyNecessaryChecks(actionString);

    PrintWriter writer = mockHttpServletResponse.getWriter();
    writer.flush();
    System.out.println(outStringWriter.toString());

    // ASSERT...
    if (cleanClientVersion.equals(cleanServerVersion)) {
      assertThat(outStringWriter.toString(), is("RESPONSE:" + ServletUtil.OK));
    } else {
      assertThat(
          outStringWriter.toString(),
          is(
              "ERROR:"
                  + "Client version "
                  + versionString
                  + " is not compatible with the server version "
                  + serverVersion));
    }
  }