You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2010/07/09 01:36:09 UTC

svn commit: r962200 - in /incubator/deltacloud/trunk/server/libexec: ./ tests/ tests/xmls/

Author: lutter
Date: Thu Jul  8 23:36:09 2010
New Revision: 962200

URL: http://svn.apache.org/viewvc?rev=962200&view=rev
Log:
Added basic Unit tests for Sinatra to match XML from Rails

- 'gem install nokogiri' is needed to test equality of XML's
- XML files is saved by hand from Firefox

Added:
    incubator/deltacloud/trunk/server/libexec/run_tests.sh   (with props)
    incubator/deltacloud/trunk/server/libexec/tests/
    incubator/deltacloud/trunk/server/libexec/tests/flavors.rb
    incubator/deltacloud/trunk/server/libexec/tests/instance-states.rb
    incubator/deltacloud/trunk/server/libexec/tests/realms.rb
    incubator/deltacloud/trunk/server/libexec/tests/xmls/
    incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-m1-small.xml
    incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-unknown-testing.xml
    incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-x86_64.xml
    incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors.xml
    incubator/deltacloud/trunk/server/libexec/tests/xmls/instance-states.xml
    incubator/deltacloud/trunk/server/libexec/tests/xmls/realms-us.xml
    incubator/deltacloud/trunk/server/libexec/tests/xmls/realms.xml

Added: incubator/deltacloud/trunk/server/libexec/run_tests.sh
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/run_tests.sh?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/run_tests.sh (added)
+++ incubator/deltacloud/trunk/server/libexec/run_tests.sh Thu Jul  8 23:36:09 2010
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+## TODO: This fiel will be replaced by regular Rake task
+#
+
+for t in tests/*.rb; do
+  ruby $t
+done

Propchange: incubator/deltacloud/trunk/server/libexec/run_tests.sh
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/deltacloud/trunk/server/libexec/run_tests.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/deltacloud/trunk/server/libexec/tests/flavors.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/flavors.rb?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/flavors.rb (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/flavors.rb Thu Jul  8 23:36:09 2010
@@ -0,0 +1,71 @@
+require 'rubygems'
+require 'test/unit'
+require 'rack/test'
+require 'base64'
+require 'nokogiri'
+require 'pp'
+
+ENV['API_DRIVER']='mock'
+
+require 'server'
+
+set :environment, :test
+
+class FlavorTest < Test::Unit::TestCase
+  include Rack::Test::Methods
+
+  def app
+    Sinatra::Application
+  end
+
+  def test_if_xml_is_valid
+    get '/api/flavors.xml', {}, auth
+    assert last_response.ok?
+    document = Nokogiri::XML(last_response.body)
+    assert_equal '1.0', document.version
+  end
+
+  def test_index_operation
+    get '/api/flavors.xml', {}, auth
+    original = Nokogiri::XML(xml_file_content('flavors'))
+    responded = Nokogiri::XML(last_response.body)
+    assert_equal original.to_s, responded.to_s
+  end
+
+  def test_index_filter_architecture
+    get '/api/flavors.xml', { :architecture => 'x86_64'}, auth
+    original = Nokogiri::XML(xml_file_content('flavors-x86_64'))
+    responded = Nokogiri::XML(last_response.body)
+    assert_equal original.to_s, responded.to_s
+    original = Nokogiri::XML(xml_file_content('flavors-unknown-testing'))
+    get '/api/flavors.xml', { :architecture => 'unknown-testing'}, auth
+    assert_equal original.to_s, responded.to_s
+  end
+
+  def test_show_operation
+    get '/api/flavors.xml', {}, auth
+    url = Nokogiri::XML(xml_file_content('flavors')).xpath('/flavors/flavor[1]').attr('href').to_s
+    get "#{url}.xml", {}, auth
+    original = Nokogiri::XML(xml_file_content('flavors-m1-small'))
+    responded = Nokogiri::XML(last_response.body)
+    assert_equal original.to_s, responded.to_s
+  end
+
+  private
+
+  def xml_file_content(name)
+    out = ""
+    File.open("tests/xmls/#{name}.xml", 'r') do |f|
+      while (line = f.gets)
+        out += line
+      end
+    end
+    return out
+  end
+
+  def auth
+    auth_string = "Basic " + Base64.encode64("mockuser:mockpassword")
+    @auth = { 'HTTP_AUTHORIZATION' => auth_string }
+  end
+
+end

Added: incubator/deltacloud/trunk/server/libexec/tests/instance-states.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/instance-states.rb?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/instance-states.rb (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/instance-states.rb Thu Jul  8 23:36:09 2010
@@ -0,0 +1,53 @@
+require 'rubygems'
+require 'test/unit'
+require 'rack/test'
+require 'base64'
+require 'nokogiri'
+require 'pp'
+
+ENV['API_DRIVER']='mock'
+
+require 'server'
+
+set :environment, :test
+
+class InstanceStatesTest < Test::Unit::TestCase
+  include Rack::Test::Methods
+
+  def app
+    Sinatra::Application
+  end
+
+  def test_if_xml_is_valid
+    get '/api/instance_states.xml', {}, auth
+    assert last_response.ok?
+    document = Nokogiri::XML(last_response.body)
+    assert_equal '1.0', document.version
+  end
+
+  def test_index_operation
+    get '/api/instance_states.xml', {}, auth
+    assert last_response.ok?
+    original = Nokogiri::XML(xml_file_content('instance-states'))
+    document = Nokogiri::XML(last_response.body)
+    assert_equal original.to_s, document.to_s
+  end
+
+  private
+
+  def xml_file_content(name)
+    out = ""
+    File.open("tests/xmls/#{name}.xml", 'r') do |f|
+      while (line = f.gets)
+        out += line
+      end
+    end
+    return out
+  end
+
+  def auth
+    auth_string = "Basic " + Base64.encode64("mockuser:mockpassword")
+    @auth = { 'HTTP_AUTHORIZATION' => auth_string }
+  end
+
+end

Added: incubator/deltacloud/trunk/server/libexec/tests/realms.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/realms.rb?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/realms.rb (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/realms.rb Thu Jul  8 23:36:09 2010
@@ -0,0 +1,74 @@
+require 'rubygems'
+require 'test/unit'
+require 'rack/test'
+require 'base64'
+require 'nokogiri'
+require 'pp'
+
+ENV['API_DRIVER']='mock'
+
+require 'server'
+
+set :environment, :test
+
+class RealmTest < Test::Unit::TestCase
+  include Rack::Test::Methods
+
+  def app
+    Sinatra::Application
+  end
+
+  def test_if_xml_is_valid
+    get '/api/realms.xml', {}, auth
+    assert last_response.ok?
+    document = Nokogiri::XML(last_response.body)
+    assert_equal '1.0', document.version
+  end
+
+  def test_index_operation
+    get '/api/realms.xml', {}, auth
+    original = Nokogiri::XML(xml_file_content('realms'))
+    responded = Nokogiri::XML(last_response.body)
+    assert_equal original.to_s, responded.to_s
+  end
+
+# TODO: Does Realms have 'architecture' ?
+=begin
+  def test_index_filter_architecture
+    get '/api/realms.xml', { :architecture => 'x86_64'}, auth
+    original = Nokogiri::XML(xml_file_content('realms-x86_64'))
+    responded = Nokogiri::XML(last_response.body)
+    assert_equal original.to_s, responded.to_s
+    original = Nokogiri::XML(xml_file_content('realms-unknown-testing'))
+    get '/api/realms.xml', { :architecture => 'unknown-testing'}, auth
+    assert_equal original.to_s, responded.to_s
+  end
+=end
+
+  def test_show_operation
+    get '/api/realms.xml', {}, auth
+    url = Nokogiri::XML(xml_file_content('realms')).xpath('/realms/realm[1]').attr('href').to_s
+    get "#{url}.xml", {}, auth
+    original = Nokogiri::XML(xml_file_content('realms-us'))
+    responded = Nokogiri::XML(last_response.body)
+    assert_equal original.to_s, responded.to_s
+  end
+
+  private
+
+  def xml_file_content(name)
+    out = ""
+    File.open("tests/xmls/#{name}.xml", 'r') do |f|
+      while (line = f.gets)
+        out += line
+      end
+    end
+    return out
+  end
+
+  def auth
+    auth_string = "Basic " + Base64.encode64("mockuser:mockpassword")
+    @auth = { 'HTTP_AUTHORIZATION' => auth_string }
+  end
+
+end

Added: incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-m1-small.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-m1-small.xml?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-m1-small.xml (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-m1-small.xml Thu Jul  8 23:36:09 2010
@@ -0,0 +1,6 @@
+<flavor href="http://localhost:3000/api/flavors/m1-small">
+  <id>m1-small</id>
+  <architecture>i386</architecture>
+  <memory>1.7</memory>
+  <storage>160</storage>
+</flavor>

Added: incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-unknown-testing.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-unknown-testing.xml?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-unknown-testing.xml (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-unknown-testing.xml Thu Jul  8 23:36:09 2010
@@ -0,0 +1,2 @@
+<flavors>
+</flavors>

Added: incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-x86_64.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-x86_64.xml?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-x86_64.xml (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors-x86_64.xml Thu Jul  8 23:36:09 2010
@@ -0,0 +1,26 @@
+<flavors>
+  <flavor href="http://localhost:3030/api/flavors/m1-large">
+    <id>m1-large</id>
+    <architecture>x86_64</architecture>
+    <memory>7.5</memory>
+    <storage>850</storage>
+  </flavor>
+  <flavor href="http://localhost:3030/api/flavors/m1-xlarge">
+    <id>m1-xlarge</id>
+    <architecture>x86_64</architecture>
+    <memory>15</memory>
+    <storage>1690</storage>
+  </flavor>
+  <flavor href="http://localhost:3030/api/flavors/c1-medium">
+    <id>c1-medium</id>
+    <architecture>x86_64</architecture>
+    <memory>1.7</memory>
+    <storage>350</storage>
+  </flavor>
+  <flavor href="http://localhost:3030/api/flavors/c1-xlarge">
+    <id>c1-xlarge</id>
+    <architecture>x86_64</architecture>
+    <memory>7</memory>
+    <storage>1690</storage>
+  </flavor>
+</flavors>

Added: incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors.xml?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors.xml (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/xmls/flavors.xml Thu Jul  8 23:36:09 2010
@@ -0,0 +1,32 @@
+<flavors>
+  <flavor href="http://localhost:3000/api/flavors/m1-small">
+    <id>m1-small</id>
+    <architecture>i386</architecture>
+    <memory>1.7</memory>
+    <storage>160</storage>
+  </flavor>
+  <flavor href="http://localhost:3000/api/flavors/m1-large">
+    <id>m1-large</id>
+    <architecture>x86_64</architecture>
+    <memory>7.5</memory>
+    <storage>850</storage>
+  </flavor>
+  <flavor href="http://localhost:3000/api/flavors/m1-xlarge">
+    <id>m1-xlarge</id>
+    <architecture>x86_64</architecture>
+    <memory>15</memory>
+    <storage>1690</storage>
+  </flavor>
+  <flavor href="http://localhost:3000/api/flavors/c1-medium">
+    <id>c1-medium</id>
+    <architecture>x86_64</architecture>
+    <memory>1.7</memory>
+    <storage>350</storage>
+  </flavor>
+  <flavor href="http://localhost:3000/api/flavors/c1-xlarge">
+    <id>c1-xlarge</id>
+    <architecture>x86_64</architecture>
+    <memory>7</memory>
+    <storage>1690</storage>
+  </flavor>
+</flavors>

Added: incubator/deltacloud/trunk/server/libexec/tests/xmls/instance-states.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/xmls/instance-states.xml?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/xmls/instance-states.xml (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/xmls/instance-states.xml Thu Jul  8 23:36:09 2010
@@ -0,0 +1,18 @@
+<states>
+  <state name='start'>
+    <transition action='create' to='pending'>    </transition>
+  </state>
+  <state name='pending'>
+    <transition auto='true' to='running'>    </transition>
+  </state>
+  <state name='running'>
+    <transition action='reboot' to='running'>    </transition>
+    <transition action='stop' to='stopped'>    </transition>
+  </state>
+  <state name='stopped'>
+    <transition action='start' to='running'>    </transition>
+    <transition action='destroy' to='finish'>    </transition>
+  </state>
+  <state name='finish'>
+  </state>
+</states>

Added: incubator/deltacloud/trunk/server/libexec/tests/xmls/realms-us.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/xmls/realms-us.xml?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/xmls/realms-us.xml (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/xmls/realms-us.xml Thu Jul  8 23:36:09 2010
@@ -0,0 +1,6 @@
+<realm href="http://localhost:3000/api/realms/us">
+  <id>us</id>
+  <name>United States</name>
+  <state>AVAILABLE</state>
+  <limit/>
+</realm>

Added: incubator/deltacloud/trunk/server/libexec/tests/xmls/realms.xml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/libexec/tests/xmls/realms.xml?rev=962200&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/libexec/tests/xmls/realms.xml (added)
+++ incubator/deltacloud/trunk/server/libexec/tests/xmls/realms.xml Thu Jul  8 23:36:09 2010
@@ -0,0 +1,14 @@
+<realms>
+  <realm href="http://localhost:3000/api/realms/us">
+    <id>us</id>
+    <name>United States</name>
+    <state>AVAILABLE</state>
+    <limit/>
+  </realm>
+  <realm href="http://localhost:3000/api/realms/eu">
+    <id>eu</id>
+    <name>Europe</name>
+    <state>AVAILABLE</state>
+    <limit/>
+  </realm>
+</realms>