Package com.agiletec.plugins.jpsurvey.apsadmin.survey

Source Code of com.agiletec.plugins.jpsurvey.apsadmin.survey.TestChoiceAction

package com.agiletec.plugins.jpsurvey.apsadmin.survey;

/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando software.
* Entando is a free software;
* You can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions  
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
import com.agiletec.plugins.jpsurvey.apsadmin.ApsAdminPluginBaseTestCase;

import com.agiletec.apsadmin.system.ApsAdminSystemConstants;
import com.agiletec.apsadmin.system.BaseAction;
import com.agiletec.plugins.jpsurvey.aps.system.services.SurveySystemConstants;
import com.agiletec.plugins.jpsurvey.aps.system.services.collect.IResponseManager;
import com.agiletec.plugins.jpsurvey.aps.system.services.survey.ISurveyManager;
import com.agiletec.plugins.jpsurvey.aps.system.services.survey.model.Survey;
import com.agiletec.plugins.jpsurvey.apsadmin.survey.ChoiceAction;

public class TestChoiceAction extends ApsAdminPluginBaseTestCase {

  protected void setUp() throws Exception {
    super.setUp();
    this.init();
    }

  private void init() {
    this.setSurveyManager((ISurveyManager) this.getService(SurveySystemConstants.SURVEY_MANAGER));
    this.setResponseManager((IResponseManager) this.getService(SurveySystemConstants.SURVEY_RESPONSE_MANAGER));
  }
 
  //TODO FARE CONTROLLO NUMERI ERRORI E CAMPI
  public void testEditSingleChoice() throws Throwable {
    String result = null;
    try {
      this.setUserOnSession("admin");
     
      // invoke without arguments
      this.initAction("/do/jpsurvey/Survey", "editSingleChoice");
      result = this.executeAction();
      assertEquals(BaseAction.INPUT, result);
     
      // load unknown choice
      this.initAction("/do/jpsurvey/Survey", "editSingleChoice");
      result = this.executeAction();
      this.addParameter("choiceId", -1);
      assertEquals(BaseAction.INPUT, result);
     
      // load valid choice
      this.initAction("/do/jpsurvey/Survey", "editSingleChoice");
      this.addParameter("choiceId", 1);
      result = this.executeAction();
      assertEquals(BaseAction.SUCCESS, result);
    } catch (Throwable t) {
      throw t;
    }
  }
 
  //TODO FARE CONTROLLO NUMERI ERRORI E CAMPI
  public void testSaveChoice() throws Throwable {
    Survey survey = this.createFakeSurveyForTest(true, true, false);
    Survey verify = null;
    String result = null;
    try {
      this.setUserOnSession("admin");
      // save the survey
      this.getSurveyManager().saveSurvey(survey);
      // update internal id's by reloading the object
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(survey);
      // invoke without arguments
      this.initAction("/do/jpsurvey/Survey", "saveChoice");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.INPUT, result);
     
      // save new choice
      this.initAction("/do/jpsurvey/Survey", "saveChoice");
      this.addParameter("choiceId", -1);
      this.addParameter("surveyId", survey.getId());
      this.addParameter("questionId", survey.getQuestions().get(0).getId());
      this.addParameter("strutsAction", ApsAdminSystemConstants.ADD);
      this.addParameter("choice-it", "forza Cagliari");
      this.addParameter("isQuestionnaire", "true");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      verify = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(verify.getQuestions().get(0).getChoices());
      assertEquals(3, verify.getQuestions().get(0).getChoices().size());
      assertEquals("forza Cagliari", verify.getQuestions().get(0).getChoices().get(2).getAnswer("it"));
     
      // save edited choice
      survey = getSurveyManager().loadSurvey(survey.getId());
      this.initAction("/do/jpsurvey/Survey", "saveChoice");
      this.addParameter("strutsAction", ApsAdminSystemConstants.EDIT);
      this.addParameter("questionId", survey.getQuestions().get(0).getId());
      this.addParameter("choiceId", survey.getQuestions().get(0).getChoices().get(2).getId());
      this.addParameter("surveyId", survey.getId());
      this.addParameter("choice-it", "forza Milan");
      this.addParameter("isQuestionnaire", "true");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      verify = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(verify.getQuestions().get(0).getChoices());
      assertEquals(3, verify.getQuestions().get(0).getChoices().size());
      assertEquals("forza Milan", verify.getQuestions().get(0).getChoices().get(2).getAnswer("it"));
    } catch (Throwable t) {
      throw t;
    } finally {
      getSurveyManager().deleteSurvey(survey.getId());
    }
  }
 
  //TODO FARE CONTROLLO NUMERI ERRORI E CAMPI
  public void testAddFreeText() throws Throwable {
    Survey survey = this.createFakeSurveyForTest(true, true, false);
    String result = null;
    try {
      this.setUserOnSession("admin");
      // save the survey
      this.getSurveyManager().saveSurvey(survey);
      // update internal id's by reloading the object
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      // invoke without arguments
      this.initAction("/do/jpsurvey/Survey", "addNewFreeText");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.INPUT, result);
     
      // invoke with invalid question id, we expect a SQL exception
      this.initAction("/do/jpsurvey/Survey", "addNewFreeText");
      this.addParameter("questionId", "-1");
      this.addParameter("strutsAction", ApsAdminSystemConstants.ADD);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.FAILURE, result);
     
      // normal operation
      this.initAction("/do/jpsurvey/Survey", "addNewFreeText");
      this.addParameter("questionId", survey.getQuestions().get(0).getId());
      this.addParameter("strutsAction", ApsAdminSystemConstants.ADD);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(survey);
      assertNotNull(survey.getQuestions().get(0).getChoices());
      assertEquals(3, survey.getQuestions().get(0).getChoices().size());
      assertTrue(survey.getQuestions().get(0).getChoices().get(2).isFreeText());
    } catch (Throwable t) {
      throw t;
    } finally {
      getSurveyManager().deleteSurvey(survey.getId());
    }
  }
 
  //TODO FARE CONTROLLO NUMERI ERRORI E CAMPI
  public void testDeleteChoice() throws Throwable {
    Survey survey = this.createFakeSurveyForTest(true, true, false);
    String result = null;
    try {
      this.setUserOnSession("admin");
      // save the survey
      this.getSurveyManager().saveSurvey(survey);
      // update internal id's by reloading the object
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      // invoke without parameters
      this.initAction("/do/jpsurvey/Survey", "deleteChoice");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.INPUT, result);
     
      // invoke with wrong parameters
      this.initAction("/do/jpsurvey/Survey", "deleteChoice");
      this.addParameter("choiceId", -1);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
     
      // invoke with correct parameters
      this.initAction("/do/jpsurvey/Survey", "deleteChoice");
      this.addParameter("choiceId", survey.getQuestions().get(0).getChoices().get(0).getId());
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
     
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(survey);
      assertNotNull(survey.getQuestions());
      assertNotNull(survey.getQuestions().get(0).getChoices());
      assertEquals(1, survey.getQuestions().get(0).getChoices().size());
    } catch (Throwable t) {
      throw t;
    } finally {
      this.getSurveyManager().deleteSurvey(survey.getId());
    }
  }
 
  //TODO FARE CONTROLLO NUMERI ERRORI E CAMPI
  public void testMoveChoiceDown() throws Throwable {
    Survey survey = this.createFakeSurveyForTest(true, true, false);
    Survey test = null;
    String result = null;
    try {
      this.setUserOnSession("admin");
      // save the survey
      this.getSurveyManager().saveSurvey(survey);
      // update internal id's by reloading the object
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      // invoke without parameters
      this.initAction("/do/jpsurvey/Survey", "moveChoiceDown");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.INPUT, result);
     
      // invoke with invalid id
      this.initAction("/do/jpsurvey/Survey", "moveChoiceDown");
      this.addParameter("choiceId", -1);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
     
      // move down the last has no effects
      test = this.getSurveyManager().loadSurvey(survey.getId());
      this.initAction("/do/jpsurvey/Survey", "moveChoiceDown");
      this.addParameter("choiceId", survey.getQuestions().get(0).getChoices().get(1).getId());
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(survey);
      assertEquals(survey.getQuestions().get(0).getChoices().get(1).getId(), test.getQuestions().get(0).getChoices().get(1).getId());
     
      // normal operations
      test=getSurveyManager().loadSurvey(survey.getId());
      this.initAction("/do/jpsurvey/Survey", "moveChoiceDown");
      this.addParameter("choiceId", survey.getQuestions().get(0).getChoices().get(0).getId());
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(survey);
      assertEquals(survey.getQuestions().get(0).getChoices().get(1).getId(), test.getQuestions().get(0).getChoices().get(0).getId());
    } catch (Throwable t) {
      throw t;
    } finally {
      getSurveyManager().deleteSurvey(survey.getId());
    }
  }
 
  //TODO FARE CONTROLLO NUMERI ERRORI E CAMPI
  public void testMoveChoiceUp() throws Throwable {
    Survey survey = this.createFakeSurveyForTest(true, true, false);
    Survey test = null;
    String result = null;
    try {
      this.setUserOnSession("admin");
      // save the survey
      this.getSurveyManager().saveSurvey(survey);
      // update internal id's by reloading the object
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      // invoke without parameters
      this.initAction("/do/jpsurvey/Survey", "moveChoiceUp");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.INPUT, result);
     
      // invoke with invalid id
      this.initAction("/do/jpsurvey/Survey", "moveChoiceUp");
      this.addParameter("choiceId", -1);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
     
      // move up the first
      test=getSurveyManager().loadSurvey(survey.getId());
      this.initAction("/do/jpsurvey/Survey", "moveChoiceUp");
      this.addParameter("choiceId", survey.getQuestions().get(0).getChoices().get(0).getId());
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(survey);
      assertEquals(survey.getQuestions().get(0).getChoices().get(1).getId(), test.getQuestions().get(0).getChoices().get(1).getId());
     
      // normal operations
      test=getSurveyManager().loadSurvey(survey.getId());
      this.initAction("/do/jpsurvey/Survey", "moveChoiceUp");
      this.addParameter("choiceId", survey.getQuestions().get(0).getChoices().get(1).getId());
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      assertNotNull(survey);
      assertEquals(survey.getQuestions().get(0).getChoices().get(1).getId(), test.getQuestions().get(0).getChoices().get(0).getId());
    } catch (Throwable t) {
      throw t;
    } finally {
      this.getSurveyManager().deleteSurvey(survey.getId());
    }
  }
 
  public void testFreeTextList() throws Throwable {
    String result = null;
    ChoiceAction action = null;
    try {
      this.setUserOnSession("admin");
     
      // invoke without parameters
      this.initAction("/do/jpsurvey/Survey", "freeTextList");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.INPUT, result);
     
      // invoke with invalid choice ID
      this.initAction("/do/jpsurvey/Survey", "freeTextList");
      this.addParameter("choiceId", -1);
      this.addParameter("questionId", 2);
      result = this.executeAction();
     
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      action = (ChoiceAction) this.getAction();
      assertNotNull(action.getFreeTextMap());
      assertTrue(action.getFreeTextMap().isEmpty());
     
      // invoke with NON free text choice ID
      this.initAction("/do/jpsurvey/Survey", "freeTextList");
      this.addParameter("choiceId", 2);
      this.addParameter("questionId", 2);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      action = (ChoiceAction) this.getAction();
      assertNotNull(action.getFreeTextMap());
      assertTrue(action.getFreeTextMap().isEmpty());
     
      this.initAction("/do/jpsurvey/Survey", "freeTextList");
      this.addParameter("choiceId", 6);
      this.addParameter("questionId", 2);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      action = (ChoiceAction) this.getAction();
      assertNotNull(action.getFreeTextMap());
      assertFalse(action.getFreeTextMap().isEmpty());
      assertEquals(1, action.getFreeTextMap().size());
      assertEquals(Integer.valueOf(1), action.getFreeTextMap().get("lorem ipsum dolor"));
    } catch (Throwable t) {
      throw t;
    }
  }
 
  public void testTrashChoice() throws Throwable {
    String result = null;
    ChoiceAction action = null;
    try {
      this.setUserOnSession("admin");
     
      // invoke without parameters
      this.initAction("/do/jpsurvey/Survey", "trashChoice");
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.INPUT, result);
     
      // invoke with invalid choice ID
      this.initAction("/do/jpsurvey/Survey", "trashChoice");
      this.addParameter("choiceId", -1);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      action = (ChoiceAction) this.getAction();
      assertNotNull(action.getChoices());
      assertTrue(action.getChoices().isEmpty());
     
      // invoke with known choice ID
      this.initAction("/do/jpsurvey/Survey", "trashChoice");
      this.addParameter("choiceId", 1);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      action = (ChoiceAction) this.getAction();
      assertNotNull(action.getChoices());
      assertEquals(false, action.getChoice().getChoices().isEmpty());
     
      // invoke with known choice ID
      this.initAction("/do/jpsurvey/Survey", "trashChoice");
      this.addParameter("choiceId", 6);
      result = this.executeAction();
      assertNotNull(result);
      assertEquals(BaseAction.SUCCESS, result);
      action = (ChoiceAction) this.getAction();
      assertNotNull(action.getChoice());
    } catch (Throwable t) {
      throw t;
    }
  }
 
  protected IResponseManager getResponseManager() {
    return _responseManager;
  }
  public void setResponseManager(IResponseManager responseManager) {
    this._responseManager = responseManager;
  }
 
  protected ISurveyManager getSurveyManager() {
    return _surveyManager;
  }
  public void setSurveyManager(ISurveyManager surveyManager) {
    this._surveyManager = surveyManager;
  }
 
  private IResponseManager _responseManager;
  private ISurveyManager _surveyManager;
 
}
TOP

Related Classes of com.agiletec.plugins.jpsurvey.apsadmin.survey.TestChoiceAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.