[ap4r-devel] [373] trunk/ap4r: Added tests for message_build.rb.

kato-k at rubyforge.org kato-k at rubyforge.org
Mon Jan 28 01:02:27 EST 2008


Revision: 373
Author:   kato-k
Date:     2008-01-28 01:02:26 -0500 (Mon, 28 Jan 2008)

Log Message:
-----------
Added tests for message_build.rb.

Modified Paths:
--------------
    trunk/ap4r/lib/ap4r/message_builder.rb
    trunk/ap4r/spec/local/message_builder_spec.rb

Modified: trunk/ap4r/lib/ap4r/message_builder.rb
===================================================================
--- trunk/ap4r/lib/ap4r/message_builder.rb	2008-01-25 02:54:56 UTC (rev 372)
+++ trunk/ap4r/lib/ap4r/message_builder.rb	2008-01-28 06:02:26 UTC (rev 373)
@@ -3,6 +3,7 @@
 # Licence:: MIT Licence
 
 require 'active_record'
+require 'active_support'
 
 module Ap4r #:nodoc:
 
@@ -81,7 +82,7 @@
       when :json
         set_content_type("application/json")
       when :yaml
-        set_content_type("text/plain text/yaml")
+        set_content_type("text/yaml")
       else
         set_content_type("application/x-www-form-urlencoded")
       end

Modified: trunk/ap4r/spec/local/message_builder_spec.rb
===================================================================
--- trunk/ap4r/spec/local/message_builder_spec.rb	2008-01-25 02:54:56 UTC (rev 372)
+++ trunk/ap4r/spec/local/message_builder_spec.rb	2008-01-28 06:02:26 UTC (rev 373)
@@ -5,13 +5,13 @@
 
 describe "When simple API is used," do
 
-  describe Ap4r::MessageBuilder, " with empty message" do
+  describe Ap4r::MessageBuilder, " with an empty message" do
     before(:all) do
       empty_message = {}
       @message_builder = Ap4r::MessageBuilder.new("queue_name", empty_message, {})
     end
 
-    it "should have right MIME header." do
+    it "should have the right MIME header." do
       pending("TODO: should modify implementation? 2008/01/18 kiwamu")
       mime_type = @message_builder.message_headers["http_header_Content-type".to_sym]
       mime_type.should == "application/x-www-form-urlencoded"
@@ -33,7 +33,7 @@
       @message_builder = Ap4r::MessageBuilder.new("queue_name", message, {})
     end
 
-    it "should have right MIME header." do
+    it "should have the right MIME header." do
       pending("TODO: should modify implementation? 2008/01/18 kiwamu")
       mime_type = @message_builder.message_headers["http_header_Content-type".to_sym]
       mime_type.should == "application/x-www-form-urlencoded"
@@ -51,16 +51,17 @@
 
   describe Ap4r::MessageBuilder, " with a nested complicated message" do
     before(:all) do
-      message = {:foo => "bar"} # TODO
-      @message_builder = Ap4r::MessageBuilder.new("queue_name", message, {})
+      @message = {:a => {:b => "c", :d => { :e => "f", :g => "h"}}, :i => "j"}
+      @message_builder = Ap4r::MessageBuilder.new("queue_name", @message, {})
     end
 
     it "should have the given message." do
-      @message_builder.message_body.should == {:foo => "bar"}
+      @message_builder.message_body.should == @message
     end
 
     it "should return the urlencoded body." do
-      @message_builder.format_message_body.should == "foo=bar"
+      query = @message_builder.format_message_body
+      query.split("&").sort.should == %w(a[b]=c a[d][e]=f a[d][g]=h i=j).sort
     end
 
   end
@@ -70,58 +71,129 @@
 
 describe "When block style API is used, " do
 
-  describe Ap4r::MessageBuilder, " assigned no format" do
-    it "should have right MIME header." do
+  describe Ap4r::MessageBuilder, " assigned unknown format" do
+
+    before(:all) do
+
+      block = Proc.new do
+        body :key1, "value"
+        body :key2, 1
+        format :unknown_format
+      end
+
+      @message_builder = Ap4r::MessageBuilder.new("", {}, {})
+      @message_builder.instance_eval(&block)
     end
 
+    it "should have the right MIME header." do
+      pending("TODO: should modify implementation? 2008/01/24 kiwamu")
+      mime_type = @message_builder.message_headers["http_header_Content-type".to_sym]
+      mime_type.should == "application/x-www-form-urlencoded"
+    end
+
     it "should have the given message." do
+      @message_builder.message_body.should == {:key1 => "value", :key2 => 1}
     end
 
     it "should return the urlencoded body." do
+      @message_builder.format_message_body.should == "key1=value&key2=1"
     end
+
   end
 
   describe Ap4r::MessageBuilder, " assigned text format" do
-    it "should have right MIME header." do
+
+    before(:all) do
+
+      block = Proc.new do
+        body :key1, "value"
+        body :key2, 1
+        format :text
+      end
+
+      @message_builder = Ap4r::MessageBuilder.new("", {}, {})
+      @message_builder.instance_eval(&block)
     end
 
-    it "should have the given message." do
+    it "should have the right MIME header." do
+      mime_type = @message_builder.message_headers["http_header_Content-type".to_sym]
+      mime_type.should == "text/plain"
     end
 
     it "should return the to_s formatted body." do
+      @message_builder.format_message_body.should == {:key1 => "value", :key2 => 1}.to_s
     end
   end
 
   describe Ap4r::MessageBuilder, " assigned xml format" do
-    it "should have right MIME header." do
+
+    before(:all) do
+
+      block = Proc.new do
+        body :key1, "value"
+        body :key2, 1
+        format :xml
+      end
+
+      @message_builder = Ap4r::MessageBuilder.new("", {}, {})
+      @message_builder.instance_eval(&block)
     end
 
-    it "should have the given message." do
+    it "should have the right MIME header." do
+      mime_type = @message_builder.message_headers["http_header_Content-type".to_sym]
+      mime_type.should == "application/xml"
     end
 
     it "should return the xml formatted body." do
+      @message_builder.format_message_body.should == {:key1 => "value", :key2 => 1}.to_xml(:root => "root")
     end
   end
 
   describe Ap4r::MessageBuilder, " assigned json format" do
-    it "should have right MIME header." do
+
+    before(:all) do
+
+      block = Proc.new do
+        body :key1, "value"
+        body :key2, 1
+        format :json
+      end
+
+      @message_builder = Ap4r::MessageBuilder.new("", {}, {})
+      @message_builder.instance_eval(&block)
     end
 
-    it "should have the given message." do
+    it "should have the right MIME header." do
+      mime_type = @message_builder.message_headers["http_header_Content-type".to_sym]
+      mime_type.should == "application/json"
     end
 
     it "should return the json formatted body." do
+      @message_builder.format_message_body.should == {:key1 => "value", :key2 => 1}.to_json
     end
   end
 
   describe Ap4r::MessageBuilder, " assigned yaml format" do
-    it "should have right MIME header." do
+
+    before(:all) do
+
+      block = Proc.new do
+        body :key1, "value"
+        body :key2, 1
+        format :yaml
+      end
+
+      @message_builder = Ap4r::MessageBuilder.new("", {}, {})
+      @message_builder.instance_eval(&block)
     end
 
-    it "should have the given message." do
+    it "should have the right MIME header." do
+      mime_type = @message_builder.message_headers["http_header_Content-type".to_sym]
+      mime_type.should == "text/yaml"
     end
 
     it "should return the yaml formatted body." do
+      @message_builder.format_message_body.should == {:key1 => "value", :key2 => 1}.to_yaml
     end
   end
 




More information about the ap4r-devel mailing list