mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
60 lines
1.5 KiB
Ruby
60 lines
1.5 KiB
Ruby
|
Shindo.tests("Fog::DNS[:dreamhost] | record", ['dreamhost', 'dns']) do
|
||
|
|
||
|
service = Fog::DNS[:dreamhost]
|
||
|
record = service.records.first
|
||
|
|
||
|
tests('#attributes') do
|
||
|
tests('should have') do
|
||
|
model_attribute_hash = record.attributes
|
||
|
attributes = [
|
||
|
:name,
|
||
|
:value,
|
||
|
:zone,
|
||
|
:type,
|
||
|
:editable,
|
||
|
:account_id,
|
||
|
:comment,
|
||
|
]
|
||
|
attributes.each do |attribute|
|
||
|
test("#{attribute} method") { record.respond_to? attribute }
|
||
|
end
|
||
|
attributes.each do |attribute|
|
||
|
test("#{attribute} key") { model_attribute_hash.has_key? attribute }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
test('be a kind of Fog::DNS::Dreamhost::Record') do
|
||
|
record.kind_of? Fog::DNS::Dreamhost::Record
|
||
|
end
|
||
|
|
||
|
tests('Write operations') do
|
||
|
name = "test.#{test_domain}"
|
||
|
r = service.records.create :name => name,
|
||
|
:type => 'A',
|
||
|
:value => "8.8.8.8"
|
||
|
tests('#save') do
|
||
|
test('returns Fog::DNS::Dreamhost::Record') do
|
||
|
r.is_a? Fog::DNS::Dreamhost::Record
|
||
|
end
|
||
|
test('value is 8.8.8.8') do
|
||
|
r.value == '8.8.8.8'
|
||
|
end
|
||
|
test("name is #{name}") do
|
||
|
r.name == name
|
||
|
end
|
||
|
end
|
||
|
tests('#destroy') do
|
||
|
test('returns true') { r.destroy == true }
|
||
|
test('destroyed record not listed') do
|
||
|
(service.records.find { |r| r.name == name }).nil?
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# cleanup
|
||
|
cleanup_records
|
||
|
|
||
|
end
|
||
|
|