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); } }
/// <summary> /// Criar email para envio com cópia /// </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 ConfiguracaoDocumentoSituacaoEmailCc</returns> public static ConfiguracaoDocumentoSituacaoEmailCc CriarEmailCc(Session session, string txEmail, ConfiguracaoDocumentoSituacao situacao = null, bool save = false) { ConfiguracaoDocumentoSituacaoEmailCc email = new ConfiguracaoDocumentoSituacaoEmailCc(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 }