1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/tests/requests/rds/db_snapshot_tests.rb
2016-07-13 11:22:52 +01:00

62 lines
2 KiB
Ruby

Shindo.tests('Fog::Rds[:aws] | db snapshot requests', ['aws']) do
@snapshot_format = {
'AllocatedStorage' => Integer,
'AvailabilityZone' => Fog::Nullable::String,
'Engine' => String,
'EngineVersion' => String,
'InstanceCreateTime' => Time,
'DBInstanceIdentifier' => String,
'DBSnapshotIdentifier' => String,
'Iops' => Fog::Nullable::Integer,
'MasterUsername' => String,
'Port' => Fog::Nullable::Integer,
'Status' => String,
'StorageType' => String,
'SnapshotType' => String,
'SnapshotCreateTime' => Fog::Nullable::Time,
}
@snapshots_format = {
'requestId' => String
}
@rds_identity = "test_rds"
Fog::AWS[:rds].create_db_instance(@rds_identity,{
"DBInstanceClass"=>"db.m3.xlarge",
"Engine"=>"PostgreSQL",
"AllocatedStorage"=>100,
"MasterUserPassword"=>"password",
"MasterUsername"=>"username"
})
@rds = Fog::AWS[:rds].servers.get(@rds_identity)
tests('success') do
@snapshot_id = "testRdsSnapshot"
tests("#create_snapshot(#{@rds.identity})").formats(@snapshot_format) do
Fog::AWS[:rds].create_db_snapshot(@rds.identity,@snapshot_id).body["CreateDBSnapshotResult"]["DBSnapshot"]
end
Fog.wait_for { Fog::AWS[:rds].snapshots.get(@snapshot_id) }
Fog::AWS[:rds].snapshots.get(@snapshot_id).wait_for { ready? }
tests("#modify_db_snapshot_attribute").formats(@snapshots_format) do
Fog::AWS[:rds].modify_db_snapshot_attribute(@snapshot_id, {"Add.MemberId"=>["389480430104"]}).body
end
tests("#copy_db_snapshot (#{@snapshot_id}, target_snapshot_id)").formats(@snapshot_format) do
Fog::AWS[:rds].copy_db_snapshot(@snapshot_id, "target_snapshot_id").body["CopyDBSnapshotResult"]["DBSnapshot"]
end
end
tests('failure') do
tests("#delete_snapshot('snap-00000000')").raises(Fog::AWS::RDS::NotFound) do
Fog::AWS[:rds].delete_db_snapshot(@rds.identity)
end
end
@rds.destroy
end