public void GivenAsSeguintesSituacoesDeConfiguracoesDeDocumento(Table table)
        {
            string documento = table.Header.ToList()[0];
            string descricao = table.Header.ToList()[1];
            string cc        = table.Header.ToList()[2];
            string cco       = table.Header.ToList()[3];
            string padrao    = table.Header.ToList()[4];

            ConfiguracaoDocumento config = ConfiguracaoDocumento.GetConfiguracaoPorTipo(SessionTest, CsTipoDocumento.SolicitacaoOrcamento);

            if (config == null)
            {
                ConfiguracaoDocumentoFactory.CriarConfiguracaoDocumento(SessionTest, CsTipoDocumento.SolicitacaoOrcamento, true);
            }

            foreach (TableRow row in table.Rows)
            {
                string documentoRow = row[documento];
                string descricaoRow = row[descricao];
                string ccRow        = row[cc];
                string ccoRow       = row[cco];
                string padraoRow    = row[padrao];

                ConfiguracaoDocumentoSituacao situacao = ConfiguracaoDocumentoSituacaoFactory.CriarConfiguracaoDocumentoSituacaoComConfiguracao(
                    SessionTest, StepConfiguracaoDocumento.ConfiguracoesDocumentoDic[documentoRow], descricaoRow, false);

                situacao.IsSituacaoInicial = bool.Parse(padraoRow);

                // Emails CC
                foreach (string email in ccRow.Split(';'))
                {
                    ConfiguracaoDocumentoSituacaoEmailCc copia = new ConfiguracaoDocumentoSituacaoEmailCc(SessionTest)
                    {
                        ConfiguracaoDocumentoSituacao = situacao,
                        TxEmail = email
                    };

                    copia.Save();
                    situacao.ComCopia.Add(copia);
                }

                // Emails CCO
                foreach (string email in ccoRow.Split(';'))
                {
                    ConfiguracaoDocumentoSituacaoEmailCco copia = new ConfiguracaoDocumentoSituacaoEmailCco(SessionTest)
                    {
                        ConfiguracaoDocumentoSituacao = situacao,
                        TxEmail = email
                    };

                    copia.Save();
                    situacao.ComCopiaOculta.Add(copia);
                }

                situacao.ConfiguracaoDocumento = config;
                situacao.Save();
                ConfiguracaoDocumentoSituacoesDic.Add(descricaoRow, situacao);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Criar email para envio com cópia oculta
        /// </summary>
        /// <param name="session">Sessão</param>
        /// <param name="txEmail">Email</param>
        /// <param name="situacao">Situação</param>
        /// <param name="solicitacao">Solicitação</param>
        /// <param name="save">Se é para salvar ou não</param>
        /// <returns>Objeto de ConfiguracaoDocumentoSituacaoEmailCco</returns>
        public static ConfiguracaoDocumentoSituacaoEmailCco CriarEmailCco(Session session, string txEmail, ConfiguracaoDocumentoSituacao situacao = null, bool save = false)
        {
            ConfiguracaoDocumentoSituacaoEmailCco email = new ConfiguracaoDocumentoSituacaoEmailCco(session);

            email.TxEmail = txEmail;
            email.ConfiguracaoDocumentoSituacao = situacao;

            if (save)
            {
                email.Save();
            }

            return(email);
        }
        public void SolicitacaoOrcamentoTest_001()
        {
            #region Passo 1

            DateTime dtPrazo      = DateTime.Now.AddDays(1);
            string   emailCliente = "*****@*****.**";

            // Colaborador
            Colaborador colaborador = ColaboradorFactory.CriarColaborador(SessionTest, "000", DateTime.Now,
                                                                          "*****@*****.**", "Solicitacao", "Orcamento", "Historico", "nome.completo");

            // Situações
            ConfiguracaoDocumentoSituacao situacaoNaoIniciado = ConfiguracaoDocumentoSituacaoFactory.CriarConfiguracaoDocumentoSituacao(
                SessionTest, "Não Iniciado", "Green", CsColorDomain.System, true);
            ConfiguracaoDocumentoSituacao situacaoEmAndamento = ConfiguracaoDocumentoSituacaoFactory.CriarConfiguracaoDocumentoSituacao(
                SessionTest, "Em Andamento", "Red", CsColorDomain.System, true);
            ConfiguracaoDocumentoSituacao situacaoConcluido = ConfiguracaoDocumentoSituacaoFactory.CriarConfiguracaoDocumentoSituacao(
                SessionTest, "Concluído", "Blue", CsColorDomain.System, true);

            // Cliente
            EmpresaInstituicao cliente = EmpresaInstituicaoFactory.Criar(SessionTest, "Novo Cliente", "FPF",
                                                                         emailCliente, "0000-0000", true);

            // Solicitação de Orçamento
            SolicitacaoOrcamento solicitacao = SolicitacaoOrcamentoFactory.CriarSolicitacaoOrcamento(SessionTest, colaborador,
                                                                                                     situacaoNaoIniciado, CsPrioridade.Alta, "Teste1", dtPrazo, cliente);

            solicitacao.Reload();

            // Dados do cliente
            Assert.AreEqual(cliente.TxNome, solicitacao.TxContatoCliente,
                            "O nome do cliente deveria ser o mesmo contato na Solicitação de Orçamento");
            Assert.AreEqual(cliente.TxEmail, solicitacao.TxEmailContatoCliente,
                            "O email do cliente deveria ser o mesmo email do contato na Solicitação de Orçamento");
            Assert.AreEqual(cliente.TxFoneFax, solicitacao.TxFone,
                            "O fone do cliente deveria ser o mesmo fone do contato na Solicitação de Orçamento");

            // Emails
            Assert.AreEqual(string.Empty, solicitacao.TxCc,
                            "A quantidade de emails para envio com cópia deveria ser 0, pois nenhum email foi cadastrado.");
            Assert.AreEqual(string.Empty, solicitacao.TxCco,
                            "A quantidade de emails para envio com cópia oculta deveria ser 0, pois nenhum email foi cadastrado.");

            #endregion

            #region Passo 2

            solicitacao.TxCc = "*****@*****.**"; // Adicionando email para envio
            solicitacao.Save();                  // Persistindo

            // Verificação de envio de email
            Assert.AreEqual(true, solicitacao._EmailEnviado,
                            "O email deveria ter sido enviado");

            // Verificação das datas
            Assert.AreEqual(solicitacao.DtEmissao.Date, solicitacao.DtConclusao.Date,
                            "A data de emissão deveria ser a mesma de conclusão");

            // Verificação do código gerado
            Assert.AreEqual("FPF.01/2012", solicitacao.TxCodigo,
                            "O código deveria estar de acordo com o padrão");

            // Verificação da quantidade de dias gastos
            Assert.AreEqual(1, solicitacao._DiasGastos,
                            "A quantidade de dias gastos deveria ser 1.");

            #endregion

            #region Passo 3

            // Data prazo inválida
            solicitacao.DtPrazo = DateTime.Now.AddDays(-1);
            Assert.AreEqual(ValidationState.Valid, ValidationUtil.GetRuleState(solicitacao,
                                                                               "ValidarDtPrazo", DefaultContexts.Save));

            solicitacao.DtPrazo = dtPrazo; // Retornando à data anterior

            #endregion

            #region Passo 4

            // Email inválido
            solicitacao.TxEmailContatoCliente = "email";

            Assert.AreEqual(ValidationState.Invalid, ValidationUtil.GetRuleState(solicitacao,
                                                                                 "ValidarEmailContatoCliente", DefaultContexts.Save));

            solicitacao.TxEmailContatoCliente = emailCliente; // Retornando ao email anterior

            #endregion

            #region Passo 5

            // Alteração dos dados do cliente
            solicitacao.TxContatoCliente      = "New Client";
            solicitacao.TxEmailContatoCliente = "*****@*****.**";
            solicitacao.TxFone = "1111-1111";

            solicitacao.Save();

            Assert.AreEqual("New Client", cliente.TxNome,
                            "O nome deveria ter mudado no objeto de EmpresaInstituicao");

            Assert.AreEqual("*****@*****.**", cliente.TxEmail,
                            "O email deveria ter mudado no objeto de EmpresaInstituicao");

            Assert.AreEqual("1111-1111", cliente.TxFoneFax,
                            "O fone/fax deveria ter mudado no objeto de EmpresaInstituicao");

            #endregion

            #region Passo 6

            // [email protected] - Cc
            ConfiguracaoDocumentoSituacaoEmailCc emailCcNaoIniciado =
                ConfiguracaoDocumentoSituacaoEmailFactory.CriarEmailCc(SessionTest, "*****@*****.**",
                                                                       situacaoNaoIniciado, true);

            // [email protected] - Cco
            ConfiguracaoDocumentoSituacaoEmailCco emailCcoNaoIniciado =
                ConfiguracaoDocumentoSituacaoEmailFactory.CriarEmailCco(SessionTest, "*****@*****.**",
                                                                        situacaoNaoIniciado, true);

            // [email protected] - Cc
            ConfiguracaoDocumentoSituacaoEmailCc emailCcEmAndamento =
                ConfiguracaoDocumentoSituacaoEmailFactory.CriarEmailCc(SessionTest, "*****@*****.**",
                                                                       situacaoEmAndamento, true);

            // [email protected] - Cco
            ConfiguracaoDocumentoSituacaoEmailCco emailCcoEmAndamento =
                ConfiguracaoDocumentoSituacaoEmailFactory.CriarEmailCco(SessionTest, "*****@*****.**",
                                                                        situacaoEmAndamento, true);

            // [email protected] - Cc
            ConfiguracaoDocumentoSituacaoEmailCc emailCcConcluido =
                ConfiguracaoDocumentoSituacaoEmailFactory.CriarEmailCc(SessionTest, "*****@*****.**",
                                                                       situacaoConcluido, true);

            // [email protected] - Cco
            ConfiguracaoDocumentoSituacaoEmailCco emailCcoConcluido =
                ConfiguracaoDocumentoSituacaoEmailFactory.CriarEmailCco(SessionTest, "*****@*****.**",
                                                                        situacaoConcluido, true);

            situacaoNaoIniciado.ComCopia.Add(emailCcNaoIniciado);
            situacaoNaoIniciado.ComCopiaOculta.Add(emailCcoNaoIniciado);

            situacaoEmAndamento.ComCopia.Add(emailCcEmAndamento);
            situacaoEmAndamento.ComCopiaOculta.Add(emailCcoEmAndamento);

            situacaoConcluido.ComCopia.Add(emailCcConcluido);
            situacaoConcluido.ComCopiaOculta.Add(emailCcoConcluido);

            solicitacao.Situacao = situacaoEmAndamento; // Simular troca de situação
            solicitacao.Situacao = situacaoNaoIniciado; // Selecionando a situação "Não Iniciado"

            // Com Cópia
            Assert.AreEqual(1, solicitacao.TxCc.Split(';').Length, "Deveria ter sido carregado apenas 1 email");

            // Com Cópia Oculta
            Assert.AreEqual(string.Empty, solicitacao.TxCco, "Deveria ter sido carregado nenhum email");

            #endregion

            #region Passo 7

            solicitacao.Situacao = situacaoEmAndamento; // Selecionando a situação "Em Andamento"

            // Com Cópia

            /* Assert.AreEqual(1, solicitacao.ComCopia.Count, "Deveria ter sido carregado apenas 1 email");
             * Assert.AreEqual(situacaoEmAndamento.ComCopia[0].TxEmail, solicitacao.ComCopia[0].TxEmail,
             * "O email carregado deveria ser o mesmo email da situação");
             *
             * // Com Cópia Oculta
             * Assert.AreEqual(1, solicitacao.ComCopiaOculta.Count, "Deveria ter sido carregado apenas 1 email");
             * Assert.AreEqual(situacaoEmAndamento.ComCopiaOculta[0].TxEmail, solicitacao.ComCopiaOculta[0].TxEmail,
             * "O email carregado deveria ser o mesmo email da situação");
             *
             #endregion
             *
             #region Passo 8
             *
             * solicitacao.Situacao = situacaoConcluido; // Selecionando a situação "Concluído"
             *
             * // Com Cópia
             * Assert.AreEqual(1, solicitacao.ComCopia.Count, "Deveria ter sido carregado apenas 1 email");
             * Assert.AreEqual(situacaoConcluido.ComCopia[0].TxEmail, solicitacao.ComCopia[0].TxEmail,
             * "O email carregado deveria ser o mesmo email da situação");
             *
             * // Com Cópia Oculta
             * Assert.AreEqual(1, solicitacao.ComCopiaOculta.Count, "Deveria ter sido carregado apenas 1 email");
             * Assert.AreEqual(situacaoConcluido.ComCopiaOculta[0].TxEmail, solicitacao.ComCopiaOculta[0].TxEmail,
             * "O email carregado deveria ser o mesmo email da situação");
             *
             * // Persistindo
             * solicitacao.Save();
             *
             * // Verificação de envio de email
             * Assert.AreEqual(true, solicitacao._EmailEnviado,
             * "O email deveria ter sido enviado");
             *
             #endregion
             *
             #region Passo 9
             *
             * // Solicitação de Orçamento nova
             * SolicitacaoOrcamento solicitacao02 = SolicitacaoOrcamentoFactory.CriarSolicitacaoOrcamento(SessionTest, colaborador,
             * situacaoNaoIniciado, CsPrioridade.Alta, "Teste1", dtPrazo, cliente);
             *
             * Assert.AreEqual(ValidationState.Invalid, ValidationUtil.GetRuleState(solicitacao02,
             * "SolicitacaoOrcamento_TxTitulo_Unique", DefaultContexts.Save));
             *
             #endregion
             *
             #region Passo 10
             *
             * solicitacao02 = SolicitacaoOrcamentoFactory.CriarSolicitacaoOrcamento(SessionTest, colaborador,
             * situacaoNaoIniciado, CsPrioridade.Alta, "Teste2", dtPrazo, cliente);
             *
             * // Novas Solicitações de Orçamento
             * SolicitacaoOrcamento solicitacao03 = SolicitacaoOrcamentoFactory.CriarSolicitacaoOrcamento(SessionTest, colaborador,
             * situacaoNaoIniciado, CsPrioridade.Alta, "Teste3", dtPrazo, cliente);
             *
             * SolicitacaoOrcamento solicitacao04 = SolicitacaoOrcamentoFactory.CriarSolicitacaoOrcamento(SessionTest, colaborador,
             * situacaoNaoIniciado, CsPrioridade.Alta, "Teste4", dtPrazo, cliente);
             *
             * // Persistência
             * solicitacao02.Save();
             * solicitacao03.Save();
             * solicitacao04.Save();
             *
             * // Verificação dos códigos gerados
             * Assert.AreEqual("FPF.02/2011", solicitacao02.TxCodigo,
             * "O código deveria estar de acordo com o padrão");
             *
             * Assert.AreEqual("FPF.03/2011", solicitacao03.TxCodigo,
             * "O código deveria estar de acordo com o padrão");
             *
             * Assert.AreEqual("FPF.04/2011", solicitacao04.TxCodigo,
             * "O código deveria estar de acordo com o padrão");*/

            #endregion
        }