Package eu.planets_project.pp.plato.test.controller

Source Code of eu.planets_project.pp.plato.test.controller.LoadPlanTest

/*******************************************************************************
* Copyright (c) 2006-2010 Vienna University of Technology,
* Department of Software Technology and Interactive Systems
*
* All rights reserved. This program and the accompanying
* materials are made available under the terms of the
* Apache License, Version 2.0 which accompanies
* this distribution, and is available at
* http://www.apache.org/licenses/LICENSE-2.0
*******************************************************************************/

package eu.planets_project.pp.plato.test.controller;

import java.lang.reflect.Constructor;
import java.util.List;

import javax.faces.component.UIViewRoot;
import javax.faces.el.ValueBinding;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;

import eu.planets_project.pp.plato.action.workflow.IdentifyRequirementsAction;
import eu.planets_project.pp.plato.model.Alternative;
import eu.planets_project.pp.plato.model.Plan;
import eu.planets_project.pp.plato.model.PlanProperties;
import eu.planets_project.pp.plato.model.SampleObject;
import eu.planets_project.pp.plato.model.Values;
import eu.planets_project.pp.plato.model.tree.Leaf;

public class LoadPlanTest extends SeamTest {

    @Test
    public void testProjects() throws Exception {

        /*
        new FacesRequest("/project/loadPlan.xhtml") {

            @Override
            protected void invokeApplication() {

                System.out.println("===== before createEntityManagerFactory");
                EntityManagerFactory emf = Persistence.createEntityManagerFactory("platoDatabase");

                System.out.println("===== after createEntityManagerFactory");
                EntityManager em = emf.createEntityManager();
            }

        }.run();
*/
        new FacesRequest("/project/loadPlan.xhtml") {

            @Override
             protected void applyRequestValues() {

                UIViewRoot root = getFacesContext().getViewRoot();

                System.out.println ("ViewID=" + root.getViewId());

                System.out.println ("Child count=" + root.getChildCount());

                invokeMethod("#{loadPlan.listProjects}");
            }

            @Override
            protected void invokeApplication() {

                invokeMethod("#{loadPlan.listProjects}");
            }

            @Override
            protected void renderResponse() {

                DataModel projects = (DataModel)Contexts.getSessionContext().get("projectList");

                assert projects.getRowCount() > 1;

                List<PlanProperties> p = (List<PlanProperties>)projects.getWrappedData();

                System.out.println( "---No. of projects: " + projects.getRowCount() + " ---PROJECT NAME: " + p.get(2).getName());
            }

        }.run();

        new FacesRequest("/project/loadPlan.xhtml") {

            protected void applyRequestValues() throws Exception {

            }

            @Override
            protected void updateModelValues() throws Exception {

            }

            @Override
            protected void invokeApplication() {

                ListDataModel projects = (ListDataModel)getInstance("projectList");

                projects.setRowIndex(2);

                /*
                DataModel projects = (DataModel)Contexts.getSessionContext().get("projectList");

                assert projects != null;

                List<PlanProperties> pp = (List<PlanProperties>)projects.getWrappedData();

                System.out.println ("Plan naem: " + pp.get(0).getName());

                Contexts.getSessionContext().set("selection", pp.get(0));
                */


                // Contexts.getSessionContext().set("selection", pp.get(2)); // we load the ONB project

                invokeMethod("#{loadPlan.load}");

                Plan p = (Plan)getValue("#{selectedPlan}");

                assert p != null;

                System.out.println("Selected project: " + p.getPlanProperties().getName());

                invokeMethod("#{defineSampleRecords.enter}");
            }

            @Override
            protected void renderResponse() {

                System.out.println ("Number of objects: " + getValue("#{selectedPlan.projectBasis.numberOfObjects}"));
            }

        }.run();

        new FacesRequest("") {

            @Override
            protected void updateModelValues() throws Exception {

                DataModel records = (DataModel)Contexts.getSessionContext().get("records");

                assert records != null;

                List<SampleObject> r = (List<SampleObject>)records.getWrappedData();

                assert r.size() > 0;

                System.out.println("Nr of sample records: " + r.size());

                for (int i = 0; i < records.getRowCount(); i++) {
                    records.setRowIndex(i);
                    System.out.println("Sample Record: " + ((SampleObject)records.getRowData()).getFullname());
                }

                Contexts.getSessionContext().set("record", r.get(0));
            }

            @Override
            protected void invokeApplication() throws Exception {

                invokeMethod("#{defineSampleRecords.askRemoveRecord}");
            }

            @Override
            protected void renderResponse() throws Exception {

                SampleObject toDelete = (SampleObject)Contexts.getSessionContext().get("record");

                int allowRemove = Integer.parseInt(Contexts.getSessionContext().get("allowRemove").toString());

                assert toDelete.getId() == allowRemove;
            }

        }.run();

        new FacesRequest("") {

            @Override
            public void updateModelValues() throws Exception {

            }

            @Override
            protected void invokeApplication() throws Exception {

                DataModel records = (DataModel)Contexts.getSessionContext().get("records");

                int nrOfRecords = records.getRowCount();

                invokeMethod("#{defineSampleRecords.removeRecord}");

                records = (DataModel)Contexts.getSessionContext().get("records");

                assert nrOfRecords == records.getRowCount()+1;
            }

            @Override
            protected void renderResponse() throws Exception {

                System.out.println ("View ID to render: " +getViewId() );
                assert false == isValidationFailure();
            }

        }.run();

        new FacesRequest("") {

            @Override
            public void updateModelValues() throws Exception {

                String file = "test content";

                Contexts.getSessionContext().set("fileName", "testFile");
                Contexts.getSessionContext().set("contentType", "txt");
                Contexts.getSessionContext().set("file", file.getBytes());

            }

            @Override
            protected void invokeApplication() throws Exception {

                DataModel records = (DataModel)Contexts.getSessionContext().get("records");

                int sampleRecordCount = records.getRowCount();

                String ret = (String)invokeMethod("#{defineSampleRecords.upload}");

                records = (DataModel)Contexts.getSessionContext().get("records");

                records.setRowIndex(1);
                ((SampleObject)records.getRowData()).setShortName("just a short name");

                assert sampleRecordCount+1 == records.getRowCount();

                ret = (String)invokeMethod("#{defineSampleRecords.proceed}");

                System.out.println ("return of proceed: " + ret + " sample record count: " + (sampleRecordCount+1));
            }

            @Override
            protected void renderResponse() throws Exception {

            }

        }.run();

        new FacesRequest("workflow/identrequirements.xhtml") {

            @Override
            protected void applyRequestValues() throws Exception {

                ValueBinding vb = getFacesContext().getApplication().createValueBinding("#{identifyRequirements.table}");

                assert vb != null;

                Class clazz = vb.getType(getFacesContext());

                Constructor c = clazz.getConstructor(null);

                assert c != null;


                // assert rowKeySet != null;

                System.out.println ("Type=" +clazz.getSimpleName());

                IdentifyRequirementsAction ir = (IdentifyRequirementsAction)getInstance(IdentifyRequirementsAction.class);

                assert ir != null;

                ir.setValidator(new MockTreeValidator());

            }

            @Override
            protected void invokeApplication() throws Exception {

                invokeMethod("#{identifyRequirements.proceed}");
            }

            @Override
            protected void renderResponse() throws Exception {
                assert false == isValidationFailure();
            }

        }.run();

        new FacesRequest("workflow/definealternatives.xhtml") {

            @Override
            protected void invokeApplication() throws Exception {

                invokeMethod("#{defineAlternatives.proceed}");
            }

            @Override
            protected void renderResponse() throws Exception {
                assert false == isValidationFailure();
            }

        }.run();

        new FacesRequest("workflow/gonogo.xhtml") {

            @Override
            protected void invokeApplication() throws Exception {

                invokeMethod("#{gonogo.proceed}");
            }

            @Override
            protected void renderResponse() throws Exception {
                assert false == isValidationFailure();
            }

        }.run();

        new FacesRequest("workflow/developexperiment.xhtml") {

            @Override
            protected void invokeApplication() throws Exception {

                invokeMethod("#{devexperiments.proceed}");
            }

            @Override
            protected void renderResponse() throws Exception {
                assert false == isValidationFailure();
            }

        }.run();

        new FacesRequest("workflow/runexperiment.xhtml") {

            @Override
            protected void invokeApplication() throws Exception {

//                try{
                invokeMethod("#{runexperiments.proceed}");
/*                } catch(Exception e) {

                    String name = "nothing";


                    EJBException ex = (EJBException)e.getCause();
                    if (ex != null) {

                        EntityExistsException ex2 = (EntityExistsException)ex.getCause();

                        System.out.println ("EntityExistsException: " + ex2.getMessage());

                        ConstraintViolationException ex3 = (ConstraintViolationException)ex2.getCause();

                        System.out.println("Constrain name = " + ex3.getConstraintName());
                        System.out.println("SQL: " + ex3.getSQL());

                        name = ex3.getCause().getClass().getName();
                    }

                    //name = e.getClass().getName();
                    System.out.println("** CONSTRAINT VIOLATION EXCEPTION: " + name);

                    //System.out.println("constraint name: " + e.getConstraintName());

                    //System.out.println("SQL: " + e.getSQL());
                }*/

            }

            @Override
            protected void renderResponse() throws Exception {
                assert false == isValidationFailure();
            }

        }.run();


        new FacesRequest("workflow/evaluateexperiment.xhtml") {

            @Override
            protected void updateModelValues() throws Exception {
                Plan p = (Plan)getValue("#{selectedPlan}");

                assert p != null;

                List<Leaf> leaves = p.getTree().getRoot().getAllLeaves();

                assert leaves.size() > 0;

                Contexts.getSessionContext().set("leaves", leaves);
            }


            @Override
            protected void invokeApplication() throws Exception {
                invokeMethod("#{evalexperiments.approve}");
            }

            @Override
            protected void renderResponse() throws Exception {
                assert false == isValidationFailure();

                List<Leaf> leaves = (List<Leaf>)Contexts.getSessionContext().get("leaves");

                assert leaves != null && leaves.size() > 0;

                Plan p = (Plan)getValue("#{selectedPlan}");

                assert p != null;

                List<Alternative> alternatives = p.getAlternativesDefinition().getConsideredAlternatives();

                for (Leaf leaf : leaves) {

                    for (Alternative alter : alternatives) {

                        if (leaf.isSingle()) {

                            // if (leaf.getScale().getType() == ScaleType.ordinal) {

                                Values vs = leaf.getValueMap().get(alter.getName());

                                assert vs != null;

                                assert vs.getList().get(0) != null;
                            // } else {

                            // }
                        } else {

                            int i = 0;
                            for (SampleObject record : p.getSampleRecordsDefinition().getRecords()) {

                                Values vs = leaf.getValueMap().get(alter.getName());

                                assert vs.getList().get(i++) != null;
                            }
                        }
                    }

                }
            }

        }.run();
    }
}
TOP

Related Classes of eu.planets_project.pp.plato.test.controller.LoadPlanTest

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.