spec/profitbricks/load_balancer_spec.rb in profitbricks-0.9.9 vs spec/profitbricks/load_balancer_spec.rb in profitbricks-1.0.0

- old
+ new

@@ -1,60 +1,67 @@ require 'spec_helper' describe Profitbricks::LoadBalancer do - include Savon::Spec::Macros + include Savon::SpecHelper + + before(:all) { savon.mock! } + after(:all) { savon.unmock! } + let(:servers) { [Server.new(:id => "206d10f2-035f-4ef2-8d24-3022653e9706")]} it "create a new LoadBalancer" do - savon.expects(:create_load_balancer).returns(:success) - savon.expects(:get_load_balancer).returns(:success) + create_msg = {arg0: {data_center_id: "1111", name: "Test", server_ids: servers.collect(&:id), algorithm: 'ROUND_ROBIN'}} + savon.expects(:create_load_balancer).with(message: create_msg).returns(f :create_load_balancer, :success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success) lb = LoadBalancer.create(:data_center_id => "1111", :name => "Test", :servers => servers, :algorithm => 'ROUND_ROBIN') lb.name.should == "Test" lb.lan_id.should == 0 lb.algorithm.should == "ROUND_ROBIN" end it "should update an existing LoadBalancer" do - savon.expects(:get_load_balancer).returns(:success) - savon.expects(:update_load_balancer).returns(:success) - savon.expects(:get_load_balancer).returns(:success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success) + savon.expects(:update_load_balancer).with(message: {arg0: {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428', load_balancer_name: 'Wee'}}).returns(f :update_load_balancer, :success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428'}).returns(f :get_load_balancer, :success) lb = LoadBalancer.find(:id => "5dadd2b2-3405-4ec5-a450-0df497bebab0") lb.update(:name => "Wee").should == true # FIXME seems to be a bug in the API lb.name.should == "Test" end it "should be deleted" do - savon.expects(:get_load_balancer).returns(:success) - savon.expects(:delete_load_balancer).returns(:success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success) + savon.expects(:delete_load_balancer).with(message: {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428'}).returns(f :delete_load_balancer, :success) lb = LoadBalancer.find(:id => "5dadd2b2-3405-4ec5-a450-0df497bebab0") lb.delete.should == true end it "should register a server" do - savon.expects(:get_load_balancer).returns(:success) - savon.expects(:register_servers_on_load_balancer).returns(:success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success) + savon.expects(:register_servers_on_load_balancer).with(message: id_with_servers).returns(f :register_servers_on_load_balancer, :success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428'}).returns(f :get_load_balancer, :success) lb = LoadBalancer.find(:id => "5dadd2b2-3405-4ec5-a450-0df497bebab0") lb.register_servers(servers).should == true end it "should deregister a server" do - savon.expects(:get_load_balancer).returns(:success) - savon.expects(:deregister_servers_on_load_balancer).returns(:success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success) + savon.expects(:deregister_servers_on_load_balancer).with(message: id_with_servers).returns(f :deregister_servers_on_load_balancer, :success) lb = LoadBalancer.find(:id => "5dadd2b2-3405-4ec5-a450-0df497bebab0") lb.deregister_servers(servers).should == true end + let(:id_with_servers) { {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428', server_ids: servers.collect(&:id)} } it "should activate a server" do - savon.expects(:get_load_balancer).returns(:success) - savon.expects(:activate_load_balancing_on_servers).returns(:success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success) + savon.expects(:activate_load_balancing_on_servers).with(message: id_with_servers).returns(f :activate_load_balancing_on_servers, :success) lb = LoadBalancer.find(:id => "5dadd2b2-3405-4ec5-a450-0df497bebab0") lb.activate_servers(servers).should == true end it "should deactivate a server" do - savon.expects(:get_load_balancer).returns(:success) - savon.expects(:deactivate_load_balancing_on_servers).returns(:success) + savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success) + savon.expects(:deactivate_load_balancing_on_servers).with(message: id_with_servers).returns(f :deactivate_load_balancing_on_servers, :success) lb = LoadBalancer.find(:id => "5dadd2b2-3405-4ec5-a450-0df497bebab0") lb.deactivate_servers(servers).should == true end end \ No newline at end of file