56 lines
1.6 KiB
Ruby
56 lines
1.6 KiB
Ruby
require 'spec_helper'
|
|
require 'docker'
|
|
require_relative '../../libraries/docker_base'
|
|
require_relative '../../libraries/docker_container'
|
|
|
|
describe DockerCookbook::DockerContainer do
|
|
let(:resource) { DockerCookbook::DockerContainer.new('hello_world') }
|
|
|
|
it 'has a default action of [:run]' do
|
|
expect(resource.action).to eql([:run])
|
|
end
|
|
|
|
describe 'gets ip_address_from_container_networks' do
|
|
let(:options) { { 'id' => rand(10_000).to_s } }
|
|
subject do
|
|
Docker::Container.send(:new, Docker.connection, options)
|
|
end
|
|
# https://docs.docker.com/engine/api/version-history/#v121-api-changes
|
|
context 'when docker API < 1.21' do
|
|
let(:ip_address) { '10.0.0.1' }
|
|
let(:options) do
|
|
{
|
|
'id' => rand(10_000).to_s,
|
|
'IPAddress' => ip_address,
|
|
}
|
|
end
|
|
it 'gets ip_address as nil' do
|
|
actual = resource.ip_address_from_container_networks(subject)
|
|
expect { resource.ip_address_from_container_networks(subject) }.not_to raise_error
|
|
expect(actual).to eq(nil)
|
|
end
|
|
end
|
|
context 'when docker API > 1.21' do
|
|
let(:ip_address) { '10.0.0.1' }
|
|
let(:options) do
|
|
{
|
|
'id' => rand(10_000).to_s,
|
|
'NetworkSettings' => {
|
|
'Networks' => {
|
|
'bridge' => {
|
|
'IPAMConfig' => {
|
|
'IPv4Address' => ip_address,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
end
|
|
it 'gets ip_address' do
|
|
actual = resource.ip_address_from_container_networks(subject)
|
|
expect(actual).to eq(ip_address)
|
|
end
|
|
end
|
|
end
|
|
end
|