findById

@Transactional(readOnly = true)
public OrderDTO findById(Long id) {
    Order order = repository.findById(id).orElseThrow(
            () -> new ResourceNotFoundException("Recurso não encontrado"));
    authService.validateSelfOrAdmin(order.getClient().getId());
    return new OrderDTO(order);
}

Temos duas situações. O pedido pode existir ou não.

Uma outra coisa: esse método usa o validateSelfOrAdmin para validar o acesso aos pedidos. Ou seja, se for admin, pode acessar todos os pedidos, se for client somente os próprios pedidos.

Precisamos criar um ID de order que existe e outro que não existe.

Criar também um Order e um OrderDTO, afinal é o que o metodo retorna (criar um OrderFactory).

Como precisamos validar o acesso aos pedidos, criaremos também os 03 (três) tipos de usuários.

Atualizado