Package com.agiletec.plugins.jpsurvey.aps.system.services.collect

Source Code of com.agiletec.plugins.jpsurvey.aps.system.services.collect.TestResultManager

/*
*
* 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.
*
*/
package com.agiletec.plugins.jpsurvey.aps.system.services.collect;

import java.util.List;

import com.agiletec.plugins.jpsurvey.aps.ApsPluginBaseTestCase;

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.collect.model.SingleQuestionResponse;
import com.agiletec.plugins.jpsurvey.aps.system.services.survey.model.Choice;
import com.agiletec.plugins.jpsurvey.aps.system.services.survey.model.Question;
import com.agiletec.plugins.jpsurvey.aps.system.services.survey.model.Survey;

public class TestResultManager extends ApsPluginBaseTestCase {
 
  protected void setUp() throws Exception {
    super.setUp();
    this.init();
  }
 
  private void init() {
    this._responseManager = (IResponseManager) this.getService(SurveySystemConstants.SURVEY_RESPONSE_MANAGER);
  }
 
  public void testSaveResponse() throws Throwable {
    SingleQuestionResponse response = this.getFakeResponse();
    try {
      this.getResponseManager().submitResponse(response);
    } catch (Throwable t) {
      throw t;
    } finally {
      this.getResponseManager().deleteResponse(response);
    }
  }
 
  public void testAggregateResults() throws Throwable {
    SingleQuestionResponse r1 = this.getFakeResponse();
    SingleQuestionResponse r2 = this.getFakeResponse();
    SingleQuestionResponse r3 = this.getFakeResponse();
    List<SingleQuestionResponse> list = null;
    try {
      r1.setFreeText("0123456789");
      r2.setChoiceId(2);
      r3.setQuestionId(2);
      r3.setChoiceId(2);
      this.getResponseManager().submitResponse(r1);
      this.getResponseManager().submitResponse(r3);
      this.getResponseManager().submitResponse(r2);
      list = this.getResponseManager().aggregateResponseByIds(-1, null, null, null);
      assertNull(list);
     
      list = this.getResponseManager().aggregateResponseByIds(null, null, null, null);
      assertEquals(4, list.size());
     
      list = this.getResponseManager().aggregateResponseByIds(1, null, null, null);
      assertEquals(4, list.size());
     
      list = this.getResponseManager().aggregateResponseByIds(null, 2, null, null);
      assertEquals(2, list.size());
     
      list = this.getResponseManager().aggregateResponseByIds(null, null, 2, null);
      assertEquals(2, list.size());
     
      list = this.getResponseManager().aggregateResponseByIds(null, null, null, "ello");
      assertEquals(2, list.size());
     
      list = this.getResponseManager().aggregateResponseByIds(null, null, null, "3456");
      assertEquals(1, list.size());
      assertEquals(10, list.get(0).getFreeText().length());
    } catch (Throwable t) {
      throw t;
    } finally {
      this.getResponseManager().deleteResponse(r1);
      this.getResponseManager().deleteResponse(r2);
      this.getResponseManager().deleteResponse(r3);
    }
  }
 
  public void testDeleteResponseBySurvey() throws Throwable {
    Survey survey = this.getFakeActiveSurvey();
    try {
      this.getSurveyManager().saveSurvey(survey);
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      for (Question question: survey.getQuestions()) {
        // WE SUPPOSE THAT ALL THE CHOICES CAN BE ANSWERED
        int choiceAnswered = 0;
        for (Choice choice: question.getChoices()) {
          SingleQuestionResponse response = this.getFakeResponse();
          if (choice.isFreeText()) response.setFreeText("Forza Cagliari!");
          response.setChoiceId(choice.getId());
          response.setQuestionId(question.getId());
          response.setVoterId(1); // ALWAYS THE SAME VOTER
          this._responseManager.submitResponse(response);
          choiceAnswered++;
        }
        List<SingleQuestionResponse> list = this._responseManager.aggregateResponseByIds(null, question.getId(), null, null);
        assertEquals(choiceAnswered, list.size());
      }
      // delete all the choices
      this._responseManager.deleteResponseBySurvey(survey);
      // VERIFY QUESTION
      for (Question question: survey.getQuestions()) {
        List<SingleQuestionResponse> questionsAnswered = this._responseManager.aggregateResponseByIds(null, question.getId(), null, null);
        assertNull(questionsAnswered);
        // VERIFY ANSWER
        for (Choice choice: question.getChoices()) {
          List<SingleQuestionResponse> choiceAnswered = this._responseManager.aggregateResponseByIds(null, null, choice.getId(), null);
          assertNull(choiceAnswered);
        }
      }
      List<SingleQuestionResponse> answered = this._responseManager.aggregateResponseByIds(null, null, null, "Cagliari");
      assertNull(answered);
    } catch (Throwable t) {
      throw t;
    } finally {
      this.getSurveyManager().deleteSurvey(survey.getId());
    }
  }
 
  public void testDeleteQuestionByQuestionId() throws Throwable {
    Survey survey = this.getFakeActiveSurvey();
    try {
      this.getSurveyManager().saveSurvey(survey);
      survey = this.getSurveyManager().loadSurvey(survey.getId());
      for (Question question: survey.getQuestions()) {
        // WE SUPPOSE THAT ALL THE CHOICES CAN BE ANSWERED
        int choiceAnswered = 0;
        for (Choice choice: question.getChoices()) {
          SingleQuestionResponse response = this.getFakeResponse();
          if (choice.isFreeText()) response.setFreeText("Forza Milan!");
          response.setChoiceId(choice.getId());
          response.setQuestionId(question.getId());
          response.setVoterId(1); // ALWAYS THE SAME VOTER
          this._responseManager.submitResponse(response);
          choiceAnswered++;
        }
        this._responseManager.deleteResponseByQuestionId(question.getId());
        List<SingleQuestionResponse> list = this._responseManager.aggregateResponseByIds(null, question.getId(), null, null);
        assertNull(list);
      }
      // VERIFY QUESTION
      for (Question question: survey.getQuestions()) {
        List<SingleQuestionResponse> questionsAnswered = this._responseManager.aggregateResponseByIds(null, question.getId(), null, null);
        assertNull(questionsAnswered);
        // VERIFY ANSWER
        for (Choice choice: question.getChoices()) {
          List<SingleQuestionResponse> choiceAnswered = this._responseManager.aggregateResponseByIds(null, null, choice.getId(), null);
          assertNull(choiceAnswered);
        }
      }
      List<SingleQuestionResponse> answered = this._responseManager.aggregateResponseByIds(null, null, null, "Milan");
      assertNull(answered);
    } catch (Throwable t) {
      throw t;
    } finally {
      this._responseManager.deleteResponseBySurvey(survey);
      this.getSurveyManager().deleteSurvey(survey.getId());
    }
  }
 
  private SingleQuestionResponse getFakeResponse() {
    SingleQuestionResponse response = new SingleQuestionResponse();
    response.setQuestionId(1);
    response.setChoiceId(1);
    response.setVoterId(1);
    response.setFreeText("Non è bello ciò che è bello");
    return response;
  }
 
  public void setResponseManager(IResponseManager responseManager) {
    this._responseManager = responseManager;
  }
  public IResponseManager getResponseManager() {
    return _responseManager;
  }

  private IResponseManager _responseManager;
}
TOP

Related Classes of com.agiletec.plugins.jpsurvey.aps.system.services.collect.TestResultManager

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.