Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / spec / unit / facter / nftables_spec.rb @ c00bcf2d

Historique | Voir | Annoter | Télécharger (1,27 ko)

1 c82b960a Steve Traylen
# frozen_string_literal: true
2
3 03d9e7da Steve Traylen
require 'spec_helper'
4
5
describe 'nftables' do
6 7e5b657a Steve Traylen
  before do
7 03d9e7da Steve Traylen
    Facter.clear
8 232c1364 Steve Traylen
    allow(Process).to receive(:uid).and_return(0)
9
    allow(Facter::Util::Resolution).to receive(:which).with('nft').and_return('/usr/sbin/nft')
10
    allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft list tables').and_return(nft_tables_result)
11
    allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft --version').and_return(nft_version_result)
12 03d9e7da Steve Traylen
  end
13
14 032387dc Steve Traylen
  context 'nft present' do
15
    let(:nft_tables_result) { "table inet firewalld\ntable ip firewalld\n" }
16
    let(:nft_version_result) { "nftables v0.9.15 (Topsy)\n" }
17 03d9e7da Steve Traylen
18 032387dc Steve Traylen
    it 'returns valid fact' do
19 c82b960a Steve Traylen
      expect(Facter.fact('nftables').value).to eq('tables' => %w[inet-firewalld ip-firewalld], 'version' => '0.9.15')
20 03d9e7da Steve Traylen
    end
21
  end
22
23
  context 'nft fails' do
24 032387dc Steve Traylen
    let(:nft_tables_result) { :failed }
25
    let(:nft_version_result) { :failed }
26 03d9e7da Steve Traylen
27
    it 'does not return a fact' do
28 232c1364 Steve Traylen
      allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft --version', onfail: :failed).and_return(:failed)
29
      allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft list tables', onfail: :failed).and_return(:failed)
30 03d9e7da Steve Traylen
31
      expect(Facter.fact('nftables').value).to be_nil
32
    end
33
  end
34
end