aboutsummaryrefslogtreecommitdiff
path: root/spec/unit
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit')
-rw-r--r--spec/unit/zero/response/body_spec.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/unit/zero/response/body_spec.rb b/spec/unit/zero/response/body_spec.rb
index b70af04..0a40659 100644
--- a/spec/unit/zero/response/body_spec.rb
+++ b/spec/unit/zero/response/body_spec.rb
@@ -9,4 +9,31 @@ describe Zero::Response do
subject.body.should eq([])
end
end
+
+ describe '#body=' do
+ let(:string) { "new body" }
+ let(:array) { ["new body"] }
+ let(:object_with_each) { {:a => "b" } }
+ let(:invalid_object) { 12345 }
+
+ it "creates an array body for strings" do
+ subject.body = string
+ expect(subject.body).to eq(array)
+ end
+
+ it "sets the body to the array" do
+ subject.body = array
+ expect(subject.body).to be(array)
+ end
+
+ it "sets an object as string when responding to #each" do
+ subject.body = object_with_each
+ expect(subject.body).to be(object_with_each)
+ end
+
+ it "raises an argument error for invalid input" do
+ expect{subject.body = invalid_object}.to raise_error(
+ ArgumentError, /invalid body/)
+ end
+ end
end