= Multiplos TomEE Arquillian
:index-group: Arquillian
:jbake-type: page
:jbake-status: published

Este exemplo mostra como implantar duas aplicações diferentes, se necessário.
Às vezes, isso acontece se precisarmos de comunicação entre duas aplicações da web diferentes. Na nossa
por exemplo, implantaremos dois recursos da Web de aplicações e testaremos seu conteúdo.

== Executando a aplicação:

[source, bash]
----
mvn clean test
----
Este comando executa o teste em que especificamos as duas implantações que queremos testar. 
O teste implementa dois aplicativos nos quais testamos seu conteúdo que definimos como recurso da web nos métodos `createDep1()` e `createDep2() `.

== Anotação @Deployment

Se queremos ter duas aplicações diferentes em execução no mesmo teste, é
simples como adicionar dois métodos anotados `@Deployment` à nossa classe de teste.

[source,java]
----
@Deployment(name = "war1", testable = false)
@TargetsContainer("tomee-1")
public static WebArchive createDep1() {
    return ShrinkWrap.create(WebArchive.class, "application1.war")
            .addAsWebResource(new StringAsset("Hello from TomEE 1"), "index.html");
}

@Deployment(name = "war2", testable = false)
@TargetsContainer("tomee-2")
public static WebArchive createDep2() {
    return ShrinkWrap.create(WebArchive.class, "application2.war")
            .addAsWebResource(new StringAsset("Hello from TomEE 2"), "index.html");
}
----

== Definir o contexto de `Deployment`

Para cada método de teste, precisamos definir em qual contexto de `Deployment` os testes
devem ser executados. Para isso, usamos a anotação `@OperateOnDeployment("war2")` no nosso método de teste.

[source,java]
----
@Test
@OperateOnDeployment("war2")
public void testRunningInDep2(@ArquillianResource final URL url) throws IOException {
    final String content = IO.slurp(url);
    assertEquals("Hello from TomEE 2", content);
}
----
