Skip to content
This repository was archived by the owner on Jun 19, 2020. It is now read-only.

Commit 42abe36

Browse files
committed
Add support for *BSD os.family
1 parent 2bca424 commit 42abe36

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

lib/facts/bsd/os/family.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
module Facts
4+
module Bsd
5+
module Os
6+
class Family
7+
FACT_NAME = 'os.family'
8+
ALIASES = 'osfamily'
9+
10+
def call_the_resolver
11+
fact_value = Facter::Resolvers::Uname.resolve(:kernelname)
12+
13+
[Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14+
end
15+
end
16+
end
17+
end
18+
end
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# frozen_string_literal: true
2+
3+
describe Facts::Bsd::Os::Family do
4+
describe '#call_the_resolver' do
5+
subject(:fact) { Facts::Bsd::Os::Family.new }
6+
7+
let(:value) { 'FreeBSD' }
8+
9+
before do
10+
allow(Facter::Resolvers::Uname).to receive(:resolve).with(:kernelname).and_return(value)
11+
end
12+
13+
it 'calls Facter::Resolvers::Uname' do
14+
fact.call_the_resolver
15+
expect(Facter::Resolvers::Uname).to have_received(:resolve).with(:kernelname)
16+
end
17+
18+
it 'returns os family fact' do
19+
expect(fact.call_the_resolver).to be_an_instance_of(Array).and \
20+
contain_exactly(an_object_having_attributes(name: 'os.family', value: value),
21+
an_object_having_attributes(name: 'osfamily', value: value, type: :legacy))
22+
end
23+
end
24+
end

0 commit comments

Comments
 (0)