deltacloud-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mfoj...@apache.org
Subject [4/4] git commit: Tests: Added minitest tests for base_driver and core_ext
Date Wed, 18 Jul 2012 08:27:46 GMT
Tests: Added minitest tests for base_driver and core_ext


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/5742415a
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/5742415a
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/5742415a

Branch: refs/heads/master
Commit: 5742415a2082fd24221687680f5a0704ae7c07d5
Parents: a4bd0cc
Author: Michal Fojtik <mfojtik@redhat.com>
Authored: Tue Jul 17 13:05:48 2012 +0200
Committer: Michal fojtik <mfojtik@redhat.com>
Committed: Wed Jul 18 10:26:38 2012 +0200

----------------------------------------------------------------------
 server/tests/drivers/base/base_driver_test.rb  |  125 +++++++++++++++++++
 server/tests/helpers/core_ext/array_tests.rb   |   22 ++++
 server/tests/helpers/core_ext/hash_tests.rb    |   21 +++
 server/tests/helpers/core_ext/integer_tests.rb |   17 +++
 server/tests/helpers/core_ext/string_tests.rb  |   72 +++++++++++
 5 files changed, 257 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/5742415a/server/tests/drivers/base/base_driver_test.rb
----------------------------------------------------------------------
diff --git a/server/tests/drivers/base/base_driver_test.rb b/server/tests/drivers/base/base_driver_test.rb
new file mode 100644
index 0000000..4173b50
--- /dev/null
+++ b/server/tests/drivers/base/base_driver_test.rb
@@ -0,0 +1,125 @@
+require 'minitest/autorun'
+
+load File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'deltacloud', 'drivers',
'base_driver.rb')
+
+describe Deltacloud::BaseDriver do
+
+  before do
+    class TestDriver < Deltacloud::BaseDriver
+
+      define_hardware_profile('t1.micro') do
+        cpu                1
+        memory             613
+        storage            160
+        architecture       ['i386','x86_64']
+      end
+
+      feature :instances, :user_data
+      feature :instances, :user_name do
+        { :max_length => 50 }
+      end
+
+      define_instance_states do
+        start.to( :pending )          .automatically
+        pending.to( :running )        .automatically
+        pending.to( :stopping )       .on( :stop )
+        pending.to( :stopped )        .automatically
+        stopped.to( :running )        .on( :start )
+        running.to( :running )        .on( :reboot )
+        running.to( :stopping )       .on( :stop )
+        stopping.to(:stopped)         .automatically
+        stopping.to(:finish)          .automatically
+        stopped.to( :finish )         .automatically
+      end
+
+      def realms(credentials, opts={}); end
+    end
+    @driver = TestDriver.new
+  end
+
+  describe 'when creating a new driver' do
+
+    it 'must return the proper driver name' do
+      @driver.name.must_equal 'test'
+      TestDriver.name.must_equal 'TestDriver'
+    end
+
+  end
+
+  describe 'hardware profiles' do
+
+    it 'must allow to define custom hardware profiles' do
+      TestDriver.must_respond_to :define_hardware_profile
+    end
+
+    it 'should not allow to create duplicated profile' do
+      TestDriver.define_hardware_profile('t1.micro').must_be_nil
+      TestDriver.hardware_profiles.size.must_equal 1
+    end
+
+    it 'should return all defined hardware profiles' do
+      TestDriver.must_respond_to :hardware_profiles
+      TestDriver.hardware_profiles.wont_be_empty
+    end
+
+    it 'should allow to filter hardware profiles' do
+      @driver.filter_hardware_profiles(TestDriver.hardware_profiles, :architecture =>
'i386').wont_be_empty
+      @driver.filter_hardware_profiles(TestDriver.hardware_profiles, :architecture =>
'unknown').must_be_empty
+      @driver.filter_hardware_profiles(TestDriver.hardware_profiles, :id => 't1.micro').wont_be_empty
+      @driver.filter_hardware_profiles(TestDriver.hardware_profiles, :id => 'm1.unknown').must_be_empty
+    end
+
+  end
+
+  describe 'features' do
+
+    it 'should return all defined features' do
+      TestDriver.features.must_be_kind_of Hash
+      TestDriver.features.keys.must_include :instances
+      TestDriver.features[:instances].must_be_kind_of Array
+      TestDriver.features[:instances].must_include :user_data
+    end
+
+    it 'must have method to check if feature is defined' do
+      TestDriver.must_respond_to :'has_feature?'
+      TestDriver.has_feature?(:instances, :user_data).must_equal true
+      TestDriver.has_feature?(:instances, :user_unknown).must_equal false
+    end
+
+    it 'must return feature defined constraints' do
+      TestDriver.must_respond_to :'constraints'
+      TestDriver.constraints.must_be_kind_of Hash
+      TestDriver.constraints[:instances].must_be_kind_of Hash
+      TestDriver.constraints[:instances][:user_name].must_be_kind_of Hash
+      TestDriver.constraints[:instances][:user_name][:max_length].must_equal 50
+      TestDriver.constraints(:collection => :instances, :feature => :user_name).must_be_kind_of
Hash
+      TestDriver.constraints(:collection => :instances, :feature => :user_name)[:max_length].must_equal
50
+    end
+
+  end
+
+  describe 'instance states' do
+
+    it 'should return defined instance state machine' do
+      TestDriver.must_respond_to :instance_state_machine
+      TestDriver.instance_state_machine.must_be_kind_of Deltacloud::StateMachine
+    end
+
+    it 'should return actions for given state' do
+      @driver.must_respond_to :instance_actions_for
+      @driver.instance_actions_for('RUNNING').must_be_kind_of Array
+      @driver.instance_actions_for('RUNNING').must_include :stop
+    end
+
+  end
+
+  describe 'capabilities' do
+
+    it 'should return if driver has given capability' do
+      @driver.has_capability?(:realms).must_equal true
+      @driver.has_capability?(:images).must_equal false
+    end
+
+  end
+
+end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/5742415a/server/tests/helpers/core_ext/array_tests.rb
----------------------------------------------------------------------
diff --git a/server/tests/helpers/core_ext/array_tests.rb b/server/tests/helpers/core_ext/array_tests.rb
new file mode 100644
index 0000000..c116484
--- /dev/null
+++ b/server/tests/helpers/core_ext/array_tests.rb
@@ -0,0 +1,22 @@
+require 'minitest/autorun'
+
+load File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'deltacloud', 'core_ext.rb')
+
+class TestArray < MiniTest::Unit::TestCase
+
+
+  def test_expand_opts!
+    assert_equal true, [].respond_to?(:"expand_opts!")
+    a = [1,2,3]
+    a.expand_opts!(:test => 1)
+    assert_equal Hash, a.last.class
+  end
+
+  def test_extract_opts!
+    assert_equal true, [].respond_to?(:"extract_opts!")
+    a = [1,2,3, { :test => 1}]
+    a.extract_opts!
+    assert_equal [1,2,3], a
+  end
+
+end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/5742415a/server/tests/helpers/core_ext/hash_tests.rb
----------------------------------------------------------------------
diff --git a/server/tests/helpers/core_ext/hash_tests.rb b/server/tests/helpers/core_ext/hash_tests.rb
new file mode 100644
index 0000000..196d70c
--- /dev/null
+++ b/server/tests/helpers/core_ext/hash_tests.rb
@@ -0,0 +1,21 @@
+require 'minitest/autorun'
+
+load File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'deltacloud', 'core_ext.rb')
+
+class TestHash < MiniTest::Unit::TestCase
+
+
+  def test_gsub_keys
+    assert_equal true, {}.respond_to?(:"gsub_keys")
+    h = {
+      :'test-key-1' => '1',
+      :'test-key-2' => '2',
+      :'test-key-3' => '3',
+    }
+    h.gsub_keys(/test-key/, 'test')
+    assert_equal h['test-1'], '1'
+    assert_equal h['test-2'], '2'
+    assert_equal h['test-3'], '3'
+  end
+
+end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/5742415a/server/tests/helpers/core_ext/integer_tests.rb
----------------------------------------------------------------------
diff --git a/server/tests/helpers/core_ext/integer_tests.rb b/server/tests/helpers/core_ext/integer_tests.rb
new file mode 100644
index 0000000..2ddf09b
--- /dev/null
+++ b/server/tests/helpers/core_ext/integer_tests.rb
@@ -0,0 +1,17 @@
+require 'minitest/autorun'
+
+load File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'deltacloud', 'core_ext.rb')
+
+class TestInteger < MiniTest::Unit::TestCase
+
+
+  def test_ordinalize
+    assert_equal true, 1.respond_to?(:"ordinalize")
+    assert_equal '1st', 1.ordinalize
+    assert_equal '2nd', 2.ordinalize
+    assert_equal '3rd', 3.ordinalize
+    assert_equal '6th', 6.ordinalize
+    assert_equal '1100th', 1100.ordinalize
+  end
+
+end

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/5742415a/server/tests/helpers/core_ext/string_tests.rb
----------------------------------------------------------------------
diff --git a/server/tests/helpers/core_ext/string_tests.rb b/server/tests/helpers/core_ext/string_tests.rb
new file mode 100644
index 0000000..89eeaa4
--- /dev/null
+++ b/server/tests/helpers/core_ext/string_tests.rb
@@ -0,0 +1,72 @@
+require 'minitest/autorun'
+
+load File.join(File.dirname(__FILE__), '..', '..', '..', 'lib', 'deltacloud', 'core_ext.rb')
+
+class TestString < MiniTest::Unit::TestCase
+
+
+  def test_blank?
+    assert_equal true, ''.respond_to?(:"blank?")
+    assert_equal true, ''.blank?
+    assert_equal true, ' '.blank?
+    assert_equal false, 'test'.blank?
+  end
+
+  def test_titlecase
+    assert_equal true, ''.respond_to?(:"titlecase")
+    assert_equal "This Is A String", 'this is a string'.titlecase
+    assert_equal 'This', 'this'.titlecase
+  end
+
+  def test_pluralize
+    assert_equal true, ''.respond_to?(:"pluralize")
+    assert_equal 'instances', 'instance'.pluralize
+    assert_equal 'properties', 'property'.pluralize
+    assert_equal 'addresses', 'address'.pluralize
+  end
+
+  def test_singularize
+    assert_equal true, ''.respond_to?(:"singularize")
+    assert_equal 'instance', 'instances'.singularize
+    assert_equal 'property', 'properties'.singularize
+    assert_equal 'address', 'addresses'.singularize
+  end
+
+  def test_underscore
+    assert_equal true, ''.respond_to?(:"underscore")
+    assert_equal 'test_model', 'TestModel'.underscore
+    assert_equal 'test/model', 'Test::Model'.underscore
+  end
+
+  def test_camelize
+    assert_equal true, ''.respond_to?(:"camelize")
+    assert_equal 'TestModel', 'test_model'.camelize
+    assert_equal 'testModel', 'test_model'.camelize(:lowercase_first_letter)
+  end
+
+  def test_uncapitalize
+    assert_equal true, ''.respond_to?(:"uncapitalize")
+    assert_equal 'testModel', 'TestModel'.uncapitalize
+    assert_equal 'test', 'Test'.uncapitalize
+  end
+
+  def test_upcase_first
+    assert_equal true, ''.respond_to?(:"upcase_first")
+    assert_equal 'Test', 'test'.upcase_first
+    assert_equal 'Test', 'Test'.upcase_first
+    assert_equal 'TestModel', 'testModel'.upcase_first
+  end
+
+  def test_truncate
+    assert_equal true, ''.respond_to?(:"truncate")
+    assert_equal 'ThisIs...cated', 'ThisIsALogStringThatNeedsToBeTruncated'.truncate
+    assert_equal 'Thi...ed', 'ThisIsALogStringThatNeedsToBeTruncated'.truncate(5)
+    assert_equal 'T...', 'ThisIsALogStringThatNeedsToBeTruncated'.truncate(1)
+    assert_equal 'This', 'This'.truncate(10)
+  end
+
+  def test_it_has_each
+    assert_equal true, ''.respond_to?(:each)
+  end
+
+end


Mime
View raw message