public void RnProcessarEventosProcessarMensagemInicioEdicaoTarefaTest()
        {
            bool           mensagemRecebida = false;
            TcpAdapterPool pool             = new TcpAdapterPool();

            WexMultiAccessClientMock cliente = new WexMultiAccessClientMock()
            {
                TcpAdapterStubAtivo = true
            };

            #region Preenchendo informações do cliente
            cliente.EnderecoIp    = ipServidor;
            cliente.OidCronograma = "C1";
            cliente.Porta         = porta;
            cliente.Login         = "******";
            cliente.Conectar();
            pool.AceitarConexao(cliente);
            cliente.AoServidorDesconectar += (mensagemDto) => { };
            #endregion

            WexMultiAccessClientMock cliente2 = new WexMultiAccessClientMock()
            {
                TcpAdapterStubAtivo = true
            };
            #region Preenchendo informações cliente2
            cliente2.EnderecoIp    = ipServidor;
            cliente2.OidCronograma = "C1";
            cliente2.Porta         = porta;
            cliente2.Login         = "******";
            cliente2.Conectar();
            pool.AceitarConexao(cliente2);
            cliente2.AoServidorDesconectar += (mensagemDto) => { };
            cliente2.AoIniciarEdicaoTarefa += (mensagemDto) =>
            {
                if (mensagemDto != null && mensagemDto.Tipo.Equals(CsTipoMensagem.InicioEdicaoTarefa))
                {
                    mensagemRecebida = true;
                }
            };
            #endregion

            cliente.RnComunicarInicioEdicaoTarefa("T1");
            ControleDeEsperaUtil.AguardarAte(() => { return(mensagemRecebida); });

            //Criando uma réplica do que deverá ser recebido pelo cliente2
            MensagemDto objetoMensagemEsperado = Mensagem.RnCriarMensagemInicioEdicaoTarefa("T1", cliente.Login, "C1");
            objetoMensagemEsperado.Propriedades.Add(Constantes.LOGIN_WEX_CLIENT, cliente2.Login);


            MensagemDto objetoMensagem = cliente2.MensagensRecebidas.FirstOrDefault(o => o.Tipo.Equals(CsTipoMensagem.InicioEdicaoTarefa));
            Assert.IsNotNull(objetoMensagem, string.Format("{0} deveria ser avisado que uma tarefa entrou em edição.", cliente2.Login));
            CollectionAssert.AreEquivalent(objetoMensagemEsperado.Propriedades, objetoMensagem.Propriedades, "Deveria ter recebido as informações esperadas.");
            cliente.RnDesconectar();
        }
        public void RnComunicarInicioEdicaoTarefaTest()
        {
            bool foiInformado = false;

            WexMultiAccessClientMock cliente = new WexMultiAccessClientMock()
            {
                TcpAdapterStubAtivo = true
            };
            TcpAdapterPool pool = new TcpAdapterPool();

            cliente.EnderecoIp    = ipServidor;
            cliente.OidCronograma = "C1";
            cliente.Porta         = porta;
            cliente.Login         = "******";
            cliente.Conectar();
            pool.AceitarConexao(cliente);
            cliente.AoServidorDesconectar += (mensagemDto) => { };

            WexMultiAccessClientMock cliente2 = new WexMultiAccessClientMock()
            {
                TcpAdapterStubAtivo = true
            };

            cliente2.EnderecoIp    = ipServidor;
            cliente2.OidCronograma = "C1";
            cliente2.Porta         = porta;
            cliente2.Login         = "******";
            cliente2.Conectar();
            pool.AceitarConexao(cliente2);
            cliente2.AoServidorDesconectar += (mensagemDto) => { };
            cliente2.AoIniciarEdicaoTarefa += (mensagemDto) =>
            {
                if (mensagemDto != null && mensagemDto.Tipo.Equals(CsTipoMensagem.InicioEdicaoTarefa))
                {
                    foiInformado = true;
                }
            };

            cliente.RnComunicarInicioEdicaoTarefa("T1");
            ControleDeEsperaUtil.AguardarAte(() => { return(foiInformado); });

            //Recebendo a mensagem de que iniciou edição de uma tarefa
            MensagemDto objetoMensagemEsperado = Mensagem.RnCriarMensagemInicioEdicaoTarefa("T1", cliente.Login, "C1");

            objetoMensagemEsperado.Propriedades.Add(Constantes.LOGIN_WEX_CLIENT, cliente2.Login);
            MensagemDto objetoMensagem = cliente2.MensagensRecebidas.FirstOrDefault(o => o.Tipo.Equals(CsTipoMensagem.InicioEdicaoTarefa));

            Assert.IsNotNull(objetoMensagem, "Deveria ter recebido a mensagem esperada");
            CollectionAssert.AreEquivalent(objetoMensagemEsperado.Propriedades, objetoMensagem.Propriedades);
            cliente.RnDesconectar();
        }