tests/requests/soa_tests.rb in fog-oraclecloud-0.1.12 vs tests/requests/soa_tests.rb in fog-oraclecloud-0.1.13

- old
+ new

@@ -1,152 +1,152 @@ -require 'pp' - -Shindo.tests('Fog::Soa[oraclecloud] | SOA requests', 'soa') do - - tests("#soa-create", "create") do - instance = Fog::OracleCloud[:soa].instances.create( - :service_name => 'TestSOA', - :description => 'A new weblogic instance', - :dba_name => 'SYS', - :dba_password => 'password', - :db_service_name => 'TestDB', - :admin_password => 'Welcome1$', - :admin_username => 'weblogic', - :shape => 'oc3m', - :version => '12.2.1', - :ssh_key => 'ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAkNNQ4ri2oUW46mBO/4CHMGCOALciumwGvFEMDLGNnlinstanceUSqU4IRrqgj+znLClfb29Oer0devdarM6DilsZVgZ2YbI5ZD5vICR/O9J0c28dArwbtFeIjcV2TCWyj5xKEXF1r+OrJMexHQa0fW1URGrU8QODpJNC/9eCVGcEXddL31xTZYpjoVOCVx66kNa6lSHEVV3T4zaCby9Oe5QI4gZe1+xyxHPNEW5wogwS3dlKSyL2CfBP0aUKOmJ5Nrl8+y0GqJQXdGjZ9FIknmwWueRW/6qPQvZocjOZ8YiPZgAP0RNy6lL+u8mnAazj/mrEdmB5QUzpDAllIr5Tn/xaddZQ==', - :cloud_storage_container => 'Test123', - :topology => 'osb' - ) - test "can create a soa instance" do - instance.is_a? Fog::OracleCloud::SOA::Instance - end - - test "is being built" do - !instance.ready? - end - instance.wait_for { ready? } - - test "is built" do - instance.ready? - end - end - - tests("#soa-and-db-create", "create") do - instance = Fog::OracleCloud[:soa].instances.create({ - :service_name => 'TestSOA2', - :description => 'A new weblogic instance', - :admin_password => 'Welcome1$', - :admin_username => 'weblogic', - :shape => 'oc3m', - :version => '12.2.1', - :ssh_key => 'ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAkNNQ4ri2oUW46mBO/4CHMGCOALciumwGvFEMDLGNnlinstanceUSqU4IRrqgj+znLClfb29Oer0devdarM6DilsZVgZ2YbI5ZD5vICR/O9J0c28dArwbtFeIjcV2TCWyj5xKEXF1r+OrJMexHQa0fW1URGrU8QODpJNC/9eCVGcEXddL31xTZYpjoVOCVx66kNa6lSHEVV3T4zaCby9Oe5QI4gZe1+xyxHPNEW5wogwS3dlKSyL2CfBP0aUKOmJ5Nrl8+y0GqJQXdGjZ9FIknmwWueRW/6qPQvZocjOZ8YiPZgAP0RNy6lL+u8mnAazj/mrEdmB5QUzpDAllIr5Tn/xaddZQ==', - :topology => 'osb' - }) - test "can create a soa instance" do - instance.is_a? Fog::OracleCloud::SOA::Instance - end - - test "is being built" do - !instance.ready? - end - instance.wait_for { ready? } - - test "is built" do - instance.ready? - end - - test "shoud have created a database instance" do - db = Fog::OracleCloud[:database].instances.get('TestSOA2-DB') - db.is_a? Fog::OracleCloud::Database::Instance - end - - test "should have created a storage container" do - container = Fog::Storage[:oraclecloud].containers.get('TestSOA2_Backup') - container.is_a? Fog::Storage::OracleCloud::Container - end - end - - tests('#soa-validation') do - tests("should ensure service name doesn't have underscore").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => 'Has_Underscore' - }) - end - tests("should ensure service name doesn't have number as first letter").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => '1NotFirstLetter' - }) - end - tests("should ensure service name isn't too long").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => 'ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName' - }) - end - tests("should ensure service name doesn't contain special characters").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => 'Special$characters' - }) - end - tests("should ensure admin password starts with a letter").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => 'Test', - :admin_password => '1NotFirstLetter' - }) - end - tests("should ensure admin password is not too long").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => 'Test', - :admin_password => 'ReallyReallyReallyReallyReallyReallyReallyReallyPassword1$' - }) - end - tests("should ensure admin password has special chars").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => 'Test', - :admin_password => 'WelcomePassword1' - }) - end - tests("should ensure admin password has numbers").raises(ArgumentError) do - instance = Fog::OracleCloud[:soa].instances.new({ - :service_name => 'Test', - :admin_password => 'WelcomePassword$' - }) - end - end - - tests('#soa-read') do - instances = Fog::OracleCloud[:soa].instances - test "returns an Array" do - instances.is_a? Array - end - - test "should return records" do - instances.size >= 1 - end - - test "should return a valid name" do - instances.first.service_name.is_a? String - end - - instance = Fog::OracleCloud[:soa].instances.get(instances.first.service_name) - test "should return an instance" do - instance.service_name.is_a? String - end - - test "get job status" do - status = instance.job_status - status.is_a? Array - end - end - - tests("#soa-delete", "create") do - instance = Fog::OracleCloud[:soa].instances.get('TestSOA') - instance.destroy('SYS', 'password') - instance.wait_for { stopping? } - tests("should actually delete instance").raises(Fog::OracleCloud::SOA::NotFound) do - instance.wait_for { stopped? } - end - # Clean up - instance = Fog::OracleCloud[:soa].instances.get('TestSOA2') - instance.destroy('SYS', 'Welcome1$') - end +require 'pp' + +Shindo.tests('Fog::Soa[oraclecloud] | SOA requests', 'soa') do + + tests("#soa-create", "create") do + instance = Fog::OracleCloud[:soa].instances.create( + :service_name => 'TestSOA', + :description => 'A new weblogic instance', + :dba_name => 'SYS', + :dba_password => 'password', + :db_service_name => 'TestDB', + :admin_password => 'Welcome1$', + :admin_username => 'weblogic', + :shape => 'oc3m', + :version => '12.2.1', + :ssh_key => 'ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAkNNQ4ri2oUW46mBO/4CHMGCOALciumwGvFEMDLGNnlinstanceUSqU4IRrqgj+znLClfb29Oer0devdarM6DilsZVgZ2YbI5ZD5vICR/O9J0c28dArwbtFeIjcV2TCWyj5xKEXF1r+OrJMexHQa0fW1URGrU8QODpJNC/9eCVGcEXddL31xTZYpjoVOCVx66kNa6lSHEVV3T4zaCby9Oe5QI4gZe1+xyxHPNEW5wogwS3dlKSyL2CfBP0aUKOmJ5Nrl8+y0GqJQXdGjZ9FIknmwWueRW/6qPQvZocjOZ8YiPZgAP0RNy6lL+u8mnAazj/mrEdmB5QUzpDAllIr5Tn/xaddZQ==', + :cloud_storage_container => 'Test123', + :topology => 'osb' + ) + test "can create a soa instance" do + instance.is_a? Fog::OracleCloud::SOA::Instance + end + + test "is being built" do + !instance.ready? + end + instance.wait_for { ready? } + + test "is built" do + instance.ready? + end + end + + tests("#soa-and-db-create", "create") do + instance = Fog::OracleCloud[:soa].instances.create({ + :service_name => 'TestSOA2', + :description => 'A new weblogic instance', + :admin_password => 'Welcome1$', + :admin_username => 'weblogic', + :shape => 'oc3m', + :version => '12.2.1', + :ssh_key => 'ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAkNNQ4ri2oUW46mBO/4CHMGCOALciumwGvFEMDLGNnlinstanceUSqU4IRrqgj+znLClfb29Oer0devdarM6DilsZVgZ2YbI5ZD5vICR/O9J0c28dArwbtFeIjcV2TCWyj5xKEXF1r+OrJMexHQa0fW1URGrU8QODpJNC/9eCVGcEXddL31xTZYpjoVOCVx66kNa6lSHEVV3T4zaCby9Oe5QI4gZe1+xyxHPNEW5wogwS3dlKSyL2CfBP0aUKOmJ5Nrl8+y0GqJQXdGjZ9FIknmwWueRW/6qPQvZocjOZ8YiPZgAP0RNy6lL+u8mnAazj/mrEdmB5QUzpDAllIr5Tn/xaddZQ==', + :topology => 'osb' + }) + test "can create a soa instance" do + instance.is_a? Fog::OracleCloud::SOA::Instance + end + + test "is being built" do + !instance.ready? + end + instance.wait_for { ready? } + + test "is built" do + instance.ready? + end + + test "shoud have created a database instance" do + db = Fog::OracleCloud[:database].instances.get('TestSOA2-DB') + db.is_a? Fog::OracleCloud::Database::Instance + end + + test "should have created a storage container" do + container = Fog::Storage[:oraclecloud].containers.get('TestSOA2_Backup') + container.is_a? Fog::Storage::OracleCloud::Container + end + end + + tests('#soa-validation') do + tests("should ensure service name doesn't have underscore").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => 'Has_Underscore' + }) + end + tests("should ensure service name doesn't have number as first letter").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => '1NotFirstLetter' + }) + end + tests("should ensure service name isn't too long").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => 'ReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongName' + }) + end + tests("should ensure service name doesn't contain special characters").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => 'Special$characters' + }) + end + tests("should ensure admin password starts with a letter").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => 'Test', + :admin_password => '1NotFirstLetter' + }) + end + tests("should ensure admin password is not too long").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => 'Test', + :admin_password => 'ReallyReallyReallyReallyReallyReallyReallyReallyPassword1$' + }) + end + tests("should ensure admin password has special chars").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => 'Test', + :admin_password => 'WelcomePassword1' + }) + end + tests("should ensure admin password has numbers").raises(ArgumentError) do + instance = Fog::OracleCloud[:soa].instances.new({ + :service_name => 'Test', + :admin_password => 'WelcomePassword$' + }) + end + end + + tests('#soa-read') do + instances = Fog::OracleCloud[:soa].instances + test "returns an Array" do + instances.is_a? Array + end + + test "should return records" do + instances.size >= 1 + end + + test "should return a valid name" do + instances.first.service_name.is_a? String + end + + instance = Fog::OracleCloud[:soa].instances.get(instances.first.service_name) + test "should return an instance" do + instance.service_name.is_a? String + end + + test "get job status" do + status = instance.job_status + status.is_a? Array + end + end + + tests("#soa-delete", "create") do + instance = Fog::OracleCloud[:soa].instances.get('TestSOA') + instance.destroy('SYS', 'password') + instance.wait_for { stopping? } + tests("should actually delete instance").raises(Fog::OracleCloud::SOA::NotFound) do + instance.wait_for { stopped? } + end + # Clean up + instance = Fog::OracleCloud[:soa].instances.get('TestSOA2') + instance.destroy('SYS', 'Welcome1$') + end end \ No newline at end of file