public void Nao_pode_criar_receita_com_valor_negativo(decimal valor)
        {
            Action act = () => Receita.Create(_id, _categoriaId, _data, _descricao, _isLancamentoPago, valor,
                                              _formaDePagto, _anotacao);

            Assert.Throws <ArgumentOutOfRangeException>(act).ParamName.Should().Be("valor");;
        }
        public void Nao_pode_criar_receita_com_descricao_invalida(string descricao)
        {
            Action act = () => Receita.Create(_id, _categoriaId, _data, descricao, _isLancamentoPago, _valor,
                                              _formaDePagto, _anotacao);

            Assert.Throws <ArgumentNullException>(act).ParamName.Should().Be("descricao");;
        }
        public void Nao_pode_criar_receita_com_data_invalida(int ano, int mes, int dia)
        {
            Action act = () => Receita.Create(_id, _categoriaId, new DateTime(ano, mes, dia), _descricao, _isLancamentoPago, _valor,
                                              _formaDePagto, _anotacao);

            Assert.Throws <ArgumentOutOfRangeException>(act).ParamName.Should().Be("data");;
        }
        public void Nao_pode_criar_receita_com_categoria_invalida(int categoriaId)
        {
            Action act = () => Receita.Create(_id, categoriaId, _data, _descricao, _isLancamentoPago, _valor,
                                              _formaDePagto, _anotacao);

            Assert.Throws <ArgumentOutOfRangeException>(act).ParamName.Should().Be("categoriaId");;
        }
        public void Quando_criar_receita_deve_constar_todos_os_dados_informados()
        {
            var receita = Receita.Create(_id, _categoriaId, _data, _descricao, _isLancamentoPago, _valor,
                                         _formaDePagto, _anotacao);

            receita.TipoId.Should().Be((int)LancamentoTipo.Receita);
            receita.CategoriaId.Should().Be(_categoriaId);
            receita.Data.Should().Be(_data);
            receita.Descricao.Should().Be(_descricao);
            receita.IsLancamentoPago.Should().Be(_isLancamentoPago);
            receita.Valor.Should().Be(_valor);
            receita.FormaDePagtoId.Should().Be((int)_formaDePagto);
            receita.Anotacao.Should().Be(_anotacao);
        }
        public async Task <Lancamento> AdicionarReceitaAsync(Guid competenciaId, Guid id, int categoriaId, DateTime data, string descricao, bool isLancamentoPago,
                                                             decimal valor, FormaDePagamento formaDePagto, string anotacao)
        {
            var competencia = await _competenciaRepository.GetByEntityIdAsync(competenciaId);

            if (competencia == null)
            {
                throw new CompetenciaNaoEncontradaException();
            }

            competencia = await _competenciaRepository.ObterPorAnoEMesAsync(competencia.Ano.Numero, (int)competencia.Mes);

            var receita = Receita.Create(Guid.NewGuid(), categoriaId, data, descricao, isLancamentoPago, valor,
                                         formaDePagto, anotacao);

            competencia.AdicionarReceita(receita);

            return(receita);
        }
 public static Receita CreateReceitaComValor(decimal valor)
 {
     return(Receita.Create(Guid.NewGuid(), _categoriaId, _data, _descricao, _isLancamentoPago, valor, _formaDePagto, _anotacao));
 }