Package org.javaee7.jaxrs.angularjs

Source Code of org.javaee7.jaxrs.angularjs.NoteResourceImplTest

package org.javaee7.jaxrs.angularjs;

import com.example.domain.Note;
import com.example.rest.NoteApp;
import com.example.rest.NoteResource;
import com.example.rest.NoteResourceImpl;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.graphene.GrapheneRuntime;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.junit.InSequence;
import org.jboss.arquillian.persistence.Cleanup;
import org.jboss.arquillian.persistence.TestExecutionPhase;
import org.jboss.arquillian.persistence.UsingDataSet;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.GenericArchive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.importer.ExplodedImporter;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.WebDriver;

import java.io.File;
import java.net.URL;

import static org.junit.Assert.assertEquals;

@Cleanup(phase = TestExecutionPhase.BEFORE)
@UsingDataSet
@RunWith(Arquillian.class)
public class NoteResourceImplTest {

    @Deployment
    public static Archive createDeployment()
    {
        final GenericArchive webResources = ShrinkWrap.create(GenericArchive.class)
            .as(ExplodedImporter.class)
            .importDirectory("src/main/webapp")
            .as(GenericArchive.class);
        final File[] seleniumApi = Maven.resolver()
            .loadPomFromFile("pom.xml")
            .resolve("org.seleniumhq.selenium:selenium-api:2.35.0")
            .withTransitivity()
            .asFile();
        return ShrinkWrap.create(WebArchive.class, NoteResourceImplTest.class.getSimpleName() + ".war")
            .addClasses(Note.class, NoteApp.class, NoteResource.class, NoteResourceImpl.class)
            .addAsResource("META-INF/persistence.xml")
            .addAsWebInfResource("enforce-beans.xml", "jboss-all.xml")
            .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
            .addAsLibraries(seleniumApi)
            .merge(webResources);
    }

    /**
     * See https://issues.jboss.org/browse/ARQ-1077
     */
    @Test
    @InSequence(1)
    public void setupDB_ARQ1077_Workaround()
    {
    }

    @Test
    @InSequence(3)
    public void setupDB_ARQ1077_Workaround_2()
    {
    }

    @Test
    @InSequence(5)
    public void setupDB_ARQ1077_Workaround_3()
    {
    }

    @InSequence(4)
    @RunAsClient
    @Test
    public void addNewNote(@ArquillianResource URL deploymentURL, @Drone WebDriver driver) throws Exception
    {
//        Given
        driver.navigate().to(deploymentURL);
        final TodoPage page = GrapheneRuntime.getInstance().goTo(TodoPage.class);
        assertEquals(3, page.getTodos().size());
//        When
        page.addNote();
        page.typeTitle("New title");
        page.typeSummary("New summary");
        page.save();
//        Then
        assertEquals(4, page.getTodos().size());
        assertEquals("New title", page.getTodos().get(3).getTitle());
        assertEquals("New summary", page.getTodos().get(3).getSummary());
    }

    @InSequence(2)
    @RunAsClient
    @Test
    public void onenterContainsNotesFromDB(@ArquillianResource URL deploymentURL, @Drone WebDriver driver)
    {
//        Given
//        When
        driver.navigate().to(deploymentURL);
        final TodoPage page = GrapheneRuntime.getInstance().goTo(TodoPage.class);
//        Then
        assertEquals(3, page.getTodos().size());
        assertEquals("Note A", page.getTodos().get(0).getTitle());
        assertEquals("Note B", page.getTodos().get(1).getTitle());
        assertEquals("Note C", page.getTodos().get(2).getTitle());
    }

    @InSequence(6)
    @RunAsClient
    @Test
    public void removeNote(@ArquillianResource URL deploymentURL, @Drone WebDriver driver) throws Exception
    {
//        Given
        driver.navigate().to(deploymentURL);
        final TodoPage page = GrapheneRuntime.getInstance().goTo(TodoPage.class);
        assertEquals(3, page.getTodos().size());
//        When
        page.getTodos().get(0).remove();
//        Then
        assertEquals("Note B", page.getTodos().get(0).getTitle());
        assertEquals("Note C", page.getTodos().get(1).getTitle());
    }
}
TOP

Related Classes of org.javaee7.jaxrs.angularjs.NoteResourceImplTest

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.