public void DeveRetornarErroQuandoTiverAssinaturaAtiva() { var subscription = new Assinatura(null); var payment = new PagamentoPaypal(_email, "12345678", DateTime.Now, DateTime.Now.AddDays(5), 10, 10, "Wayne Industries ACME", _document, _address); subscription.AdicionarPagamento(payment); _student.AdicionaAssinatura(subscription); _student.AdicionaAssinatura(subscription); //Green(2) Assert.IsTrue(_student.Invalid); //Red (1) //Assert.Fail(); }
public IResultadoComando Manipula(ComandoCriarAssinaturaBoleto comando) { // Fail fast Validations comando.Validar(); if (comando.Invalid) { AddNotifications(comando); return(new ResultadoComando(false, "Não foi possivel realizar sua assinatura")); } // Verificar se o Documento já está cadastrado if (_repositorio.DocumentoExiste(comando.NumeroDoDocumento)) { AddNotification("Documento", "Este CPF já está em uso"); } // Verificar se E-mail já está cadastrado if (_repositorio.EmailExiste(comando.Email)) { AddNotification("Email", "Este E-mail já está em uso"); } // Gerar os VOs var name = new Nome(comando.PrimeiroNome, comando.Sobrenome); var document = new Documento(comando.NumeroDoDocumento, ETipoDocumento.CPF); var email = new Email(comando.Email); var address = new Endereco(comando.Rua, comando.Numero, null, null, comando.Bairro, comando.Cidade, comando.Estado); // Gerar as Entidades var student = new Estudante(name, document, email); var subscription = new Assinatura(null); var pagamento = new PagamentoBoleto(comando.CodigoDeBarras, comando.NossoNumero, new Email(comando.Email), comando.DataDePagamento, comando.DataDeExpiracao, comando.Total, comando.TotalPago, comando.Pagante, new Documento(comando.NumeroDoDocumento, ETipoDocumento.CPF), null); // Relacionamentos subscription.AdicionarPagamento(pagamento); student.AdicionaAssinatura(subscription); //Agrupar as Validações AddNotifications(name, document, email, address, student, subscription, pagamento); // Checar as notificações if (Invalid) { return(new ResultadoComando(false, "Não foi possível realizar sua assinatura")); } // Salvar as Informações _repositorio.CriarAssinatura(student); // Enviar E-mail de boas vindas _servicoDeEmail.Enviar(student.Nome.ToString(), student.Email.Endereco, "Bem vindo à Simasoft Holdings", "Seja bem vindo! Sua assinatura foi criada"); //Retornar informações return(new ResultadoComando(true, "Cadastro efetuado com sucesso!")); }