public void MultiAccessClientComunicarManagerSobreFimEdicaoTarefa() { const string ipServidor = "127.0.0.1"; const int porta = 8086; TcpListener servidor = new TcpListener(IPAddress.Parse(ipServidor), porta); servidor.Start(); WexMultiAccessClientMock cliente = new WexMultiAccessClientMock() { EnderecoIp = ipServidor, Porta = porta, Login = "******", OidCronograma = "C1" }; cliente.AoServidorDesconectar += (mensagemDto) => { }; cliente.Conectar(); TcpClient conexaoTcpEmServidor = servidor.AcceptTcpClient(); //efetuando a leitura da primeira mensagem do cliente mensagemd e autenticação TcpUtil.ReceberMensagemTcp(conexaoTcpEmServidor); ///Comunicando o fim da tarefa cliente.RnComunicarFimEdicaoTarefa("T2"); string mensagemJson = TcpUtil.ReceberMensagemTcp(conexaoTcpEmServidor); mensagemJson = TcpUtil.RemoverStringProtecaoDeIntegridade(mensagemJson); MensagemDto mensagem = Mensagem.DeserializarMensagemDto(mensagemJson); Assert.AreEqual(cliente.OidCronograma, (string)mensagem.Propriedades[Constantes.OIDCRONOGRAMA], "Deveria ser o mesmo cronograma em que esta conectado o client"); Assert.IsTrue(mensagem.Propriedades.ContainsKey(Constantes.AUTOR_ACAO), "Deveria conter o login do colaborador que esta editou a tarefa"); Assert.AreEqual("T2", (string)mensagem.Propriedades[Constantes.OIDTAREFA], "Deveria ser a mesma tarefa comunicada na mensagem de fim de edição"); cliente.RnDesconectar(); servidor.Stop(); }
public void RnComunicarFimEdicaoTarefaTest() { int contador = 0; TcpAdapterPool pool = new TcpAdapterPool(); WexMultiAccessClientMock cliente = new WexMultiAccessClientMock() { EnderecoIp = ipServidor, OidCronograma = "C1", Porta = porta, Login = "******", TcpAdapterStubAtivo = true }; WexMultiAccessClientMock cliente2 = new WexMultiAccessClientMock() { EnderecoIp = ipServidor, OidCronograma = "C1", Porta = porta, Login = "******", TcpAdapterStubAtivo = true }; cliente.Conectar(); pool.AceitarConexao(cliente); cliente2.Conectar(); pool.AceitarConexao(cliente2); cliente2.AoServidorDesconectar += (mensagem) => { }; cliente2.AoSerFinalizadaEdicaoTarefaPorOutroUsuario += (mensagem) => { contador++; }; cliente.AoServidorDesconectar += (mensagem) => { }; cliente.RnComunicarFimEdicaoTarefa("T1"); ControleDeEsperaUtil.AguardarAte(() => { return(contador == 1); }); MensagemDto mensagemDto = cliente2.MensagensRecebidas.FirstOrDefault(o => o.Tipo.Equals(CsTipoMensagem.EdicaoTarefaFinalizada)); Assert.AreEqual(CsTipoMensagem.EdicaoTarefaFinalizada, mensagemDto.Tipo, "A mensagem recebida veio com tipo diferente do original"); Assert.IsTrue(mensagemDto.Propriedades.ContainsKey(Constantes.AUTOR_ACAO), "Deveria possuir joao na sua lista de propriedades"); Assert.AreEqual("T1", (string)mensagemDto.Propriedades[Constantes.OIDTAREFA]); Assert.AreEqual("C1", (string)mensagemDto.Propriedades[OIDCRONOGRAMA]); }