A este servidor falso foi dado o nome de EAI Fake, que nada mais é que um webservice, um JOB e alguns templates disponíveis no próprio servidor do EAI real do Logix e que irá se comportar como se fosse um produto oposto.

A estrutura completa do EAI Fake é composta por:

Instalação


As classes necessárias ao funcionamento do EAI Fake já fazem parte da instalação padrão do EAI.

Porém os arquivos de templates devem ser obtidos do TFS e copiados para a pasta (criar) \fakexml dentro do diretório de instalação do totvs. O local dentro do diretório totvs corresponde ao RootPath, ou seja, pode ser c:\totvs ou c:\totvs\logix, dependendo de com foi feita a instalação.

Download da pasta com o conteúdo do EAI Fake: fakexml.zip 

Configuração


O primeiro passo para que o EAI Fake possa ser utilizado por outro produto é definir por quais mensagens ele irá responder. Isto é feito editando o arquivo \fakexml\resposta_WhoIs.xml. Este arquivo é o modelo de resposta da transação WhoIs, que é a primeira mensagem trocada entre dois produtos que querem se comunicar.

Exemplo


<TOTVSMessage>
    <MessageInformation version="1.000">
        <UUID>[[newuuid]]</UUID>
        <Type>Response</Type>
        <Transaction>WhoIs</Transaction>
        <StandardVersion>1.0</StandardVersion>
        <SourceApplication>fake</SourceApplication>
        <Product name="Logix" version="11.0"/>
        <GeneratedOn>2001-12-31T12:00:00</GeneratedOn>
        <DeliveryType>sync</DeliveryType>
    </MessageInformation>
    <ResponseMessage>
        <ReceivedMessage>
            <SentBy>[[sourceapp]]</SentBy>
            <UUID>[[sourceuuid]]</UUID>
        </ReceivedMessage>
        <ProcessingInformation>
            <ProcessedOn>[[processedon]]</ProcessedOn>
            <Status>ok</Status>
        </ProcessingInformation>
        <ReturnContent>
            <EnabledTransactions>
                <Transaction>
                    <Name>WhoIs</Name>
                    <Mode>both_enabled</Mode>
                    <Version>1.000</Version>
                </Transaction>
                <Transaction>
                    <Name>UnitOfMeasure</Name>
                    <Mode>both_enabled</Mode>
                    <Version>1.000</Version>
                </Transaction>
                <Transaction>
                    <Name>CustomerVendor</Name>
                    <Mode>receive_enabled</Mode>
                    <Version>1.000</Version>
                </Transaction>
            </EnabledTransactions>
        </ReturnContent>
    </ResponseMessage>
</TOTVSMessage>

Dentro deste arquivo você deve editar o elemento <EnabledTransactions> para conter as transações que você irá testar, para cada transação especifique o modo de envio/recebimento com um dos valores BOTH_ENABLED, SEND_ENABLED e RECEIVE_ENABLED.

O EAI (eai10000 do Logix) deverá registrar o EAI Fake como um External Application, apontando para o Webservice EAIServiceFake, conforme as figuras abaixo:

fig1.png

fig2.png

Para instruções sobre como cadastrar um External Application, consulte o tópico XXX.

Teste simulado de integração usando o EAI Fake


O desenvolvimento de uma integração sempre pressupõe que existem dois produtos se comunicando, um produto A e um produto B.

prod_ab.png

Isto também implica que um teste real da integração só poderá ser feito quando os dois produtos estiverem com a integração praticamente pronta. Como neste cenário o primeiro teste só será feito depois de muito código desenvolvido, vários erros poderão ser descobertos de uma vez só.

O problema é que a partir do momento que as equipes dos dois produtos estão focadas no teste, e sempre que um erro é descoberto, o produto B paralisa o teste para fazer a correção e o produto A tem que aguardar a correção. Facilmente outro erro pode ser descoberto depois no produto A e a situação se inverte.

Este cenário muito comum no início dos testes de integração é o grande prolongador do tempo gasto nesta etapa.

Por isso é muito importante que as equipes isoladamente consigam testar a integração de forma unitária, sem precisar esperar que o seu próprio desenvolvimento e o do produto oposto estejam completos.

Para apoiar nos testes unitários de integração foi criado um servidor “falso” do EAI Logix, quem tem como objetivo simular o funcionamento de um produto oposto. Ao mesmo tempo em que dá total liberdade para o desenvolvedor controlar a forma como a mensagem será recebida ou respondida pelo “produto oposto”, neste caso, o servidor falso do Logix. Ou seja, o desenvolvedor do produto A, controla a forma como o produto B irá responder, simuladamente.

prod_ab2.png