org.openmrs.module.feedback.web.AddPredefinedSubjectFormControllerTest.java Source code

Java tutorial

Introduction

Here is the source code for org.openmrs.module.feedback.web.AddPredefinedSubjectFormControllerTest.java

Source

/**
 * The contents of this file are subject to the OpenMRS Public License
 * Version 1.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://license.openmrs.org
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 *
 * Copyright (C) OpenMRS, LLC.  All Rights Reserved.
 */

package org.openmrs.module.feedback.web;

//~--- non-JDK imports --------------------------------------------------------

import junit.framework.Assert;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import org.openmrs.api.context.Context;
import org.openmrs.module.feedback.FeedbackService;
import org.openmrs.module.feedback.PredefinedSubject;
import org.openmrs.web.test.BaseModuleWebContextSensitiveTest;

import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockHttpSession;
import org.springframework.web.servlet.ModelAndView;

//~--- JDK imports ------------------------------------------------------------

import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AddPredefinedSubjectFormControllerTest extends BaseModuleWebContextSensitiveTest {
    private Boolean expResult = false;
    private Boolean result = true;
    private FeedbackAdminListController controller;
    private MockHttpServletRequest request;
    private HttpServletResponse response;
    private FeedbackService service;

    public AddPredefinedSubjectFormControllerTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() throws Exception {

        /* executed before the test is run */
        this.service = Context.getService(FeedbackService.class);
        this.controller = new FeedbackAdminListController();
        this.request = new MockHttpServletRequest();
        this.response = new MockHttpServletResponse();

        /* this file is in the same folder of test resources where the hibernate mapping file is located */
        initializeInMemoryDatabase();
        executeDataSet("PredefinedSubjectDataset.xml");

        /* Sample data is loaded into the system */
        authenticate();
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of formBackingObject method, of class AddPredefinedSubjectFormController.
     */
    @Test
    public void testFormBackingObject() throws Exception {
        HttpServletRequest req = null;

        authenticate();

        AddPredefinedSubjectFormController instance = new AddPredefinedSubjectFormController();

        System.out.println("formBackingObject");

        /* To execute the test case where the predefinedsubject is < 50 */
        this.request = new MockHttpServletRequest();

        ModelAndView mv = new ModelAndView();

        instance.setSuccessView("someValue");
        request.setSession(new MockHttpSession(null));
        request.setMethod("POST");
        request.addParameter("predefinedsubject", "Testing");
        mv = instance.handleRequest(request, response);

        List predefinedSubjects = service.getPredefinedSubjects();

        for (Iterator it = predefinedSubjects.iterator(); it.hasNext();) {
            PredefinedSubject s = (PredefinedSubject) it.next();

            if ("Testing".equals(s.getSubject())) {
                this.expResult = true;
            }
        }

        Assert.assertEquals(this.expResult, this.result);

        /* To execute the test case where the predefinedsubject is > 50 */
        this.request = new MockHttpServletRequest();
        this.expResult = false;
        mv = new ModelAndView();
        instance.setSuccessView("someValue");
        request.setSession(new MockHttpSession(null));
        request.setMethod("POST");
        request.addParameter("predefinedsubject",
                "TestingTestingTestingTestingTestingTestingTestingTestingTesting");
        mv = instance.handleRequest(request, response);
        predefinedSubjects = service.getPredefinedSubjects();

        for (Iterator it = predefinedSubjects.iterator(); it.hasNext();) {
            PredefinedSubject s = (PredefinedSubject) it.next();

            if ("TestingTestingTestingTestingTestingTestingTestingT".equals(s.getSubject())) {
                this.expResult = true;
            }
        }

        Assert.assertEquals(this.expResult, this.result);

        /* To execute the test case where the predefinedsubject is = 50 */
        this.request = new MockHttpServletRequest();
        this.expResult = false;
        mv = new ModelAndView();
        instance.setSuccessView("someValue");
        request.setSession(new MockHttpSession(null));
        request.setMethod("POST");
        request.addParameter("predefinedsubject", "estingTestingTestingTestingTestingTestingTestingTe");
        mv = instance.handleRequest(request, response);
        predefinedSubjects = service.getPredefinedSubjects();

        for (Iterator it = predefinedSubjects.iterator(); it.hasNext();) {
            PredefinedSubject s = (PredefinedSubject) it.next();

            if ("estingTestingTestingTestingTestingTestingTestingTe".equals(s.getSubject())) {
                this.expResult = true;
            }
        }

        Assert.assertEquals(this.expResult, this.result);

        /* To execute the test case where the predefinedsubject is = 0 */
        this.request = new MockHttpServletRequest();
        this.expResult = true;
        mv = new ModelAndView();
        instance.setSuccessView("someValue");
        request.setSession(new MockHttpSession(null));
        request.setMethod("POST");
        request.addParameter("predefinedsubject", "");
        mv = instance.handleRequest(request, response);
        predefinedSubjects = service.getPredefinedSubjects();

        for (Iterator it = predefinedSubjects.iterator(); it.hasNext();) {
            PredefinedSubject s = (PredefinedSubject) it.next();

            if ("".equals(s.getSubject())) {
                this.expResult = false;
            }
        }

        Assert.assertEquals(this.expResult, this.result);
    }

    /*
     * Not required to test as it also the same set of function already tested in the formBackingObject method.
     * Test of referenceData method, of class AddPredefinedSubjectFormController.
     *
     * @Test
     * public void testReferenceData() throws Exception {
     *   System.out.println("referenceData");
     *   HttpServletRequest req = null;
     *   AddPredefinedSubjectFormController instance = new AddPredefinedSubjectFormController();
     *   Map expResult = null;
     *   Map result = instance.referenceData(req);
     *   // TODO review the generated test code and remove the default call to fail.
     *   fail("The test case is a prototype.");
     * }
     *
     */
}

//~ Formatted by Jindent --- http://www.jindent.com