diff --git a/lib/webmock/request_registry.rb b/lib/webmock/request_registry.rb index a15ef34e6..8843ec32f 100644 --- a/lib/webmock/request_registry.rb +++ b/lib/webmock/request_registry.rb @@ -19,5 +19,17 @@ def times_executed(request_pattern) }.inject(0) {|sum, (_, times_executed)| sum + times_executed } end + def to_s + if requested_signatures.hash.empty? + "No requests were made." + else + text = "" + self.requested_signatures.hash.each do |request_signature, times_executed| + text << "#{request_signature} was made #{times_executed} time#{times_executed == 1 ? '' : 's' }\n" + end + text + end + end + end end diff --git a/spec/request_registry_spec.rb b/spec/request_registry_spec.rb index 3340a3322..fe35eb4d8 100644 --- a/spec/request_registry_spec.rb +++ b/spec/request_registry_spec.rb @@ -54,4 +54,22 @@ end end + describe "to_s" do + it "should output string with all executed requests and numbers of executions" do + [ + WebMock::RequestSignature.new(:get, "www.example.com"), + WebMock::RequestSignature.new(:get, "www.example.com"), + WebMock::RequestSignature.new(:put, "www.example.org"), + ].each do |s| + WebMock::RequestRegistry.instance.requested_signatures.put(s) + end + WebMock::RequestRegistry.instance.to_s.should == + "PUT http://www.example.org/ was made 1 time\nGET http://www.example.com/ was made 2 times\n" + end + + it "should output info if no requests were executed" do + WebMock::RequestRegistry.instance.to_s.should == "No requests were made." + end + end + end