|
4 | 4 | describe '#call_the_resolver' do |
5 | 5 | subject(:fact) { Facts::Debian::Os::Architecture.new } |
6 | 6 |
|
7 | | - context 'when resolver does not return x86_64' do |
8 | | - let(:value) { 'i86pc' } |
| 7 | + %w[amd64 arm64 i386].each do |arch| |
| 8 | + it 'calls Facter::Core::Execution and returns architecture fact' do |
| 9 | + allow(Facter::Core::Execution).to receive(:execute).and_return(arch) |
9 | 10 |
|
10 | | - before do |
11 | | - allow(Facter::Resolvers::Uname).to receive(:resolve).with(:machine).and_return(value) |
12 | | - end |
13 | | - |
14 | | - it 'calls Facter::Resolvers::Uname' do |
15 | | - fact.call_the_resolver |
16 | | - expect(Facter::Resolvers::Uname).to have_received(:resolve).with(:machine) |
17 | | - end |
18 | | - |
19 | | - it 'returns architecture fact' do |
20 | | - expect(fact.call_the_resolver).to be_an_instance_of(Array).and \ |
21 | | - contain_exactly(an_object_having_attributes(name: 'os.architecture', value: value), |
22 | | - an_object_having_attributes(name: 'architecture', value: value, type: :legacy)) |
23 | | - end |
24 | | - end |
25 | | - |
26 | | - context 'when os is 32-bit' do |
27 | | - let(:value) { 'i586' } |
28 | | - let(:fact_value) { 'i386' } |
29 | | - |
30 | | - before do |
31 | | - allow(Facter::Resolvers::Uname).to receive(:resolve).with(:machine).and_return(value) |
32 | | - end |
33 | | - |
34 | | - it 'calls Facter::Resolvers::Uname' do |
35 | 11 | fact.call_the_resolver |
36 | | - expect(Facter::Resolvers::Uname).to have_received(:resolve).with(:machine) |
37 | | - end |
38 | | - |
39 | | - it 'returns architecture fact' do |
40 | | - expect(fact.call_the_resolver).to be_an_instance_of(Array).and \ |
41 | | - contain_exactly(an_object_having_attributes(name: 'os.architecture', value: fact_value), |
42 | | - an_object_having_attributes(name: 'architecture', value: fact_value, type: :legacy)) |
43 | | - end |
44 | | - end |
45 | | - |
46 | | - context 'when resolver returns x86_64' do |
47 | | - let(:value) { 'x86_64' } |
48 | | - |
49 | | - before do |
50 | | - allow(Facter::Resolvers::Uname).to receive(:resolve).with(:machine).and_return(value) |
51 | | - end |
52 | | - |
53 | | - it 'calls Facter::Resolvers::Uname' do |
54 | | - fact.call_the_resolver |
55 | | - expect(Facter::Resolvers::Uname).to have_received(:resolve).with(:machine) |
56 | | - end |
| 12 | + expect(Facter::Core::Execution).to have_received(:execute).with('dpkg --print-architecture') |
57 | 13 |
|
58 | | - it 'returns architecture fact' do |
59 | 14 | expect(fact.call_the_resolver).to be_an_instance_of(Array).and \ |
60 | | - contain_exactly(an_object_having_attributes(name: 'os.architecture', value: 'amd64'), |
61 | | - an_object_having_attributes(name: 'architecture', value: 'amd64', type: :legacy)) |
| 15 | + contain_exactly(an_object_having_attributes(name: 'os.architecture', value: arch), |
| 16 | + an_object_having_attributes(name: 'architecture', value: arch, type: :legacy)) |
62 | 17 | end |
63 | 18 | end |
64 | 19 | end |
|
0 commit comments