From: Tomas Sedovic <[email protected]>

---
 src/spec/models/provider_spec.rb |  109 ++++++++++++++++++++------------------
 1 files changed, 57 insertions(+), 52 deletions(-)

diff --git a/src/spec/models/provider_spec.rb b/src/spec/models/provider_spec.rb
index 3af6130..cf37ec1 100644
--- a/src/spec/models/provider_spec.rb
+++ b/src/spec/models/provider_spec.rb
@@ -1,73 +1,78 @@
 require 'spec_helper'
 
 describe Provider do
-  before(:each) do
-    @provider = Factory.create(:mock_provider)
-    @client = mock('DeltaCloud', :null_object => true)
-    @provider.stub!(:connect).and_return(@client)
-  end
+  context "(using stubbed out connect method)" do
+    before(:each) do
+      @client = mock('DeltaCloud', :null_object => true)
+      @provider = Factory.build(:mock_provider)
+      @provider.stub!(:connect).and_return(@client)
+    end
 
-  it "should return a client object" do
-    @provider.send(:valid_framework?).should be_true
-  end
+    it "should return a client object" do
+      @provider.send(:valid_framework?).should be_true
+    end
 
-  it "should validate mock provider" do
-    @provider.should be_valid
-  end
+    it "should validate mock provider" do
+      @provider.should be_valid
+    end
 
-  it "should require a valid name" do
-    [nil, ""].each do |invalid_value|
-      @provider.name = invalid_value
-      @provider.should_not be_valid
+    it "should require a valid name" do
+      [nil, ""].each do |invalid_value|
+        @provider.name = invalid_value
+        @provider.should_not be_valid
+      end
     end
-  end
 
-  it "should require a valid cloud_type" do
-    [nil, ""].each do |invalid_value|
-      @provider.cloud_type = invalid_value
-      @provider.should_not be_valid
+    it "should require a valid cloud_type" do
+      [nil, ""].each do |invalid_value|
+        @provider.cloud_type = invalid_value
+        @provider.should_not be_valid
+      end
     end
-  end
 
-  it "should require a valid url" do
-    [nil, ""].each do |invalid_value|
-      @provider.url = invalid_value
-      @provider.should_not be_valid
+    it "should require a valid url" do
+      [nil, ""].each do |invalid_value|
+        @provider.url = invalid_value
+        @provider.should_not be_valid
+      end
     end
-  end
 
-  it "should require unique name" do
-    provider1 = Factory.create :mock_provider
-    provider2 = Factory.create :mock_provider
-    provider1.should be_valid
-    provider2.should be_valid
+    it "should be able to connect to the specified framework" do
+      @provider.should be_valid
+      @provider.connect.should_not be_nil
 
-    provider2.name = provider1.name
-    provider2.should_not be_valid
-  end
+      @provider.url = "http://invalid.provider/url";
+      @provider.stub(:connect).and_return(nil)
+      deltacloud = @provider.connect
+      @provider.should have(1).error_on(:url)
+      @provider.errors.on(:url).should eql("must be a valid provider url")
+      @provider.should_not be_valid
+      deltacloud.should be_nil
+    end
+
+    it "should require unique name" do
+      @provider.save!
+      provider2 = Factory.build :mock_provider
+      provider2.stub!(:connect).and_return(@client)
+      provider2.save!
+      provider2.should be_valid
 
-  it "should be able to connect to the specified framework" do
-    @provider.should be_valid
-    @provider.connect.should_not be_nil
+      provider2.name = @provider.name
+      provider2.should_not be_valid
+    end
 
-    @provider.url = "http://invalid.provider/url";
-    @provider.stub(:connect).and_return(nil)
-    deltacloud = @provider.connect
-    @provider.should have(1).error_on(:url)
-    @provider.errors.on(:url).should eql("must be a valid provider url")
-    @provider.should_not be_valid
-    deltacloud.should be_nil
   end
 
-  it "should log errors when connecting to invalid url" do
-    @logger = mock('Logger', :null_object => true)
-    @provider = Factory.create(:mock_provider)
-    @provider.stub!(:logger).and_return(@logger)
+  context "(using original connect method)" do
+    it "should log errors when connecting to invalid url" do
+      @logger = mock('Logger', :null_object => true)
+      @provider = Factory.build(:mock_provider)
+      @provider.stub!(:logger).and_return(@logger)
 
-    @provider.should be_valid
-    @provider.logger.should_receive(:error).twice
-    @provider.url = "http://invalid.provider/url";
-    @provider.connect.should be_nil
+      @provider.logger.should_receive(:error).twice
+      @provider.url = "http://invalid.provider/url";
+      @provider.connect.should be_nil
+    end
   end
 
 end
-- 
1.6.6.1

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to