public void EntaoOServidorDeveraRecusarAEdicaoDoNomeDoCronogramaParaOColaborador(string cronograma, string login)
        {
            string oidCronograma               = StepCronograma.GetOidCronograma(cronograma);
            WexMultiAccessClientMock cliente   = StepContextUtil.GetAccessClientNoContexto(login, oidCronograma);
            List <MensagemDto>       mensagens = null;
            MensagemDto mensagem               = null;

            ControleDeEsperaUtil.AguardarAte(() =>
            {
                mensagens = new List <MensagemDto>(cliente.MensagensRecebidas);
                mensagem  = mensagens.FirstOrDefault(o => o.Propriedades[Constantes.OIDCRONOGRAMA].ToString() == oidCronograma && o.Tipo == CsTipoMensagem.EdicaoNomeCronogramaRecusada);
                return(mensagem != null);
            });

            Assert.IsNotNull(mensagem, "Deveria ter recebido a mensagem do permissão de edição do nome do cronograma");
            Assert.AreEqual(login, mensagem.Propriedades[Constantes.AUTOR_ACAO], string.Format("O proprietario da mensagem deveria ser o colaborador {0}", login));
        }
        public void EntaoOCronogramaNaoDeveComunicarAoSColaboradorEsDeQueEstaOSendoExcluidaSTarefaSNoCronograma(string cronograma, string colaboradoresString, string naoUsada1, string outroCronograma)
        {
            List <string>             colaboradores         = colaboradoresString.Replace("\'", "").Split(',').Select(o => o.Trim()).ToList();
            Dictionary <string, bool> colaboradoresAvisados = new Dictionary <string, bool>();

            //Montando Dicionário em que nenhum colaborador foi avisado sobre a exclusão
            foreach (string colaboradorAtual in colaboradores)
            {
                colaboradoresAvisados.Add(colaboradorAtual, false);
            }

            WexMultiAccessClientMock clientAtual;
            string             oidCronograma      = StepCronograma.GetOidCronograma(cronograma);
            string             oidOutroCronograma = StepCronograma.GetOidCronograma(outroCronograma);
            bool               foiComunicado;
            List <MensagemDto> mensagens = null;
            MensagemDto        mensagem;

            foreach (var colaboradorAtual in colaboradores)
            {
                foiComunicado = false;
                clientAtual   = StepContextUtil.GetAccessClientNoContexto(colaboradorAtual, oidCronograma);
                ControleDeEsperaUtil.AguardarAte(() =>
                {
                    mensagens = new List <MensagemDto>(clientAtual.MensagensRecebidas);
                    mensagem  = mensagens.FirstOrDefault(
                        o => o.Tipo == CsTipoMensagem.ExclusaoTarefaFinalizada &&
                        !o.Propriedades[Constantes.OIDCRONOGRAMA].ToString().Equals(oidOutroCronograma)
                        );
                    if (mensagem != null)
                    {
                        foiComunicado = true;
                    }
                    return(foiComunicado);
                });
                Assert.IsFalse(foiComunicado, string.Format("{0} não deveria ser comunicado de que houve exclusão em um cronograma diferente ('{1}')", colaboradorAtual, outroCronograma));
            }
        }
        public void EntaoOServidorDeveraConterNaListaDeColaboradoresConectadosOColaboradorNoCronograma(string login, string cronograma)
        {
            string oidCronograma = StepCronograma.GetOidCronograma(cronograma);

            Assert.IsTrue(manager.ColaboradorConectado(login, oidCronograma), "Deveria ter sido encontrado como colaborador conectado");
        }