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:
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
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.
<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:


Para instruções sobre como cadastrar um External Application, consulte o tópico XXX.
O desenvolvimento de uma integração sempre pressupõe que existem dois produtos se comunicando, um produto A e um produto B.

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.
