public void Nao_pode_criar_despesa_com_categoria_invalida(int categoriaId)
        {
            Action act = () => Despesa.Create(_id, categoriaId, _data, _descricao, _isLancamentoPago, _valor,
                                              _formaDePagto, _anotacao);

            Assert.Throws <ArgumentOutOfRangeException>(act).ParamName.Should().Be("categoriaId");;
        }
        public void Nao_pode_criar_despesa_com_anotacao_invalida(string anotacao)
        {
            Action act = () => Despesa.Create(_id, _categoriaId, _data, _descricao, _isLancamentoPago, _valor,
                                              _formaDePagto, anotacao);

            Assert.Throws <ArgumentNullException>(act).ParamName.Should().Be("anotacao");;
        }
        public void Nao_pode_criar_despesa_com_valor_negativo(decimal valor)
        {
            Action act = () => Despesa.Create(_id, _categoriaId, _data, _descricao, _isLancamentoPago, valor,
                                              _formaDePagto, _anotacao);

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

            Assert.Throws <ArgumentOutOfRangeException>(act).ParamName.Should().Be("data");;
        }
        public void Quando_criar_despesa_deve_constar_todos_os_dados_informados()
        {
            var despesa = Despesa.Create(_id, _categoriaId, _data, _descricao, _isLancamentoPago, _valor,
                                         _formaDePagto, _anotacao);

            despesa.TipoId.Should().Be((int)LancamentoTipo.Despesa);
            despesa.CategoriaId.Should().Be(_categoriaId);
            despesa.Data.Should().Be(_data);
            despesa.Descricao.Should().Be(_descricao);
            despesa.IsLancamentoPago.Should().Be(_isLancamentoPago);
            despesa.Valor.Should().Be(_valor);
            despesa.FormaDePagtoId.Should().Be((int)_formaDePagto);
            despesa.Anotacao.Should().Be(_anotacao);
        }
        public async Task <Lancamento> AdicionarDespesaAsync(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();
            }

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

            competencia.AdicionarDespesa(despesa);

            return(despesa);
        }
 public static Despesa CreateDespesaComValor(decimal valor)
 {
     return(Despesa.Create(Guid.NewGuid(), _categoriaId, _data, _descricao, _isLancamentoPago, valor, _formaDePagto, _anotacao));
 }