Package eu.scape_project.planning.plato.wf

Source Code of eu.scape_project.planning.plato.wf.FullPlanningworkflowIT

package eu.scape_project.planning.plato.wf;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.enterprise.inject.Instance;
import javax.inject.Inject;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.weld.context.bound.Bound;
import org.jboss.weld.context.bound.BoundConversationContext;
import org.jboss.weld.context.bound.MutableBoundRequest;
import org.junit.Assert;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import eu.scape_project.planning.annotation.IntegrationTest;
import eu.scape_project.planning.application.PlatoDeploymentBuilder;
import eu.scape_project.planning.exception.PlanningException;
import eu.scape_project.planning.model.Plan;
import eu.scape_project.planning.model.PlanState;
import eu.scape_project.planning.model.User;
import eu.scape_project.planning.validation.ValidationError;

@Category(IntegrationTest.class)
@RunWith(Arquillian.class)
public class FullPlanningworkflowIT {

    private static final Logger log = LoggerFactory.getLogger(FullPlanningworkflowIT.class);

    @Inject
    @Bound
    private BoundConversationContext conversationContext;

    @Inject
    private Instance<DefineBasis> defineBasisSource;
    @Inject
    private Instance<DefineSampleObjects> defineSampleObjectSource;

    @Inject
    private User user;

    @Deployment
    public static WebArchive createDeployment() {

        WebArchive platoWar = PlatoDeploymentBuilder.createPlatoWebArchive();
        platoWar.addClasses(AbstractWorkflowStep.class, DefineBasis.class, DefineAlternatives.class,
            FullPlanningworkflowIT.class, DefineSampleObjects.class);
        ;
        return platoWar;
    }

    @Test
    public void test() throws PlanningException {
        log.info("entering test");

        conversationContext.associate(new MutableBoundRequest(new HashMap<String, Object>(),
            new HashMap<String, Object>()));
        conversationContext.activate();

        Assert.assertTrue(conversationContext.isActive());

        DefineBasis defineBasis = defineBasisSource.get();
        Assert.assertNotNull(defineBasis);

        Plan plan = new Plan();
        plan.getPlanProperties().setName("Test Plan");
        plan.getPlanProperties().setAuthor(user.getUsername());
        plan.getPlanProperties().setOwner(user.getUsername());

        defineBasis.init(plan);
        Assert.assertNotNull(defineBasis.getPlan());

        defineBasis.save();
        log.info("stored plan");
        List<ValidationError> errors = new ArrayList<ValidationError>();

        Assert.assertTrue(defineBasis.proceed(errors));
        Assert.assertEquals(PlanState.BASIS_DEFINED, plan.getPlanProperties().getState());

        DefineSampleObjects defineSamples = defineSampleObjectSource.get();
        defineSamples.init(plan);

        Assert.assertFalse(defineSamples.proceed(errors));
        Assert.assertTrue(errors.size() != 0);
        for (ValidationError ve : errors) {
            log.debug(ve.getMessage());
        }
    }

}
TOP

Related Classes of eu.scape_project.planning.plato.wf.FullPlanningworkflowIT

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.