public void Deve_Permitir_Movimentar_Esteira() { Encomenda encomenda = new Encomenda { PontoRetiradaId = Guid.NewGuid(), PontoVendaId = Guid.NewGuid(), DataPedido = DateTime.Now, NumeroPedido = "HUFHYGD-8956-UID87", NotaFiscal = "745230", }; encomenda.CriarNovaHistoria(TipoMovimento.EsteiraIniciada); encomenda.CriarNovaHistoria(TipoMovimento.EnviadoPontoRetirada); encomenda.CriarNovaHistoria(TipoMovimento.RecebidoPontoRetirada); Assert.True(encomenda.PodeMovimentar()); }
private async Task ValidarMovimentacao(Guid encomendaId, Guid empresaId, TipoMovimento movimento, Encomenda encomenda) { if (encomenda == null) { _logger.LogWarning($"Data: ${DateTime.Now} | EncomendaId: ${encomendaId} | EmpresaId: ${empresaId}"); throw new RecebaFacilException("Encomenda não encontrada"); } if (!encomenda.PodeMovimentar()) { _logger.LogWarning($"Data: ${DateTime.Now} | EncomendaId: ${encomendaId} | EmpresaId: ${empresaId} | Movimento pretendido: ${movimento}"); throw new RecebaFacilException("Situação atual não permite movimentação"); } var empresa = await _empresaService.ObterPorId(empresaId); if (!encomenda.ObterMovimentosPermitidos(empresa.TipoEmpresa).Contains(movimento)) { _logger.LogWarning($"Data: ${DateTime.Now} | EncomendaId: ${encomendaId} | EmpresaId: ${empresaId} | Movimento pretendido: ${movimento}"); throw new RecebaFacilException("Movimentação inválida"); } }