Delete

@Transactional(propagation = Propagation.SUPPORTS)
public void delete(Long id) {
	if (!repository.existsById(id)) {
		throw new ResourceNotFoundException("Recurso não encontrado");
	}
	try {
        repository.deleteById(id);    		
	}
    catch (DataIntegrityViolationException e) {
        throw new DatabaseException("Falha de integridade referencial");
    }
}

O delete tem o cenário que ele vai deletar com ID existente.

Mas também tem as duas exceções (com id não existente e com id com produto dependente, ou seja, linkado em algum pedido).

Mock A primeira coisa é fazer os cenários do existsById e depois do deleteById.

Atualizado