spec/request_spec.rb in cistern-0.12.3 vs spec/request_spec.rb in cistern-1.0.0.pre
- old
+ new
@@ -1,29 +1,37 @@
require 'spec_helper'
-describe Cistern do
+describe "Cistern::Request" do
class SampleService < Cistern::Service
+ recognizes :key
+
class Real
+ attr_reader :service_args
+
+ def initialize(*args)
+ @service_args = args
+ end
end
end
- class SampleService::GetSample < Cistern::Request
- service SampleService
-
+ # @todo Sample::Service.request
+ class ListSamples < SampleService::Request
+ # @todo name
+ # name :list_all_samples
def real(*args)
- args
+ service.service_args + args + ["real"]
end
- end
- class ShowSamples < Cistern::Request
- service SampleService, method: :list_samples
-
- def real(*args)
- {"samples" => args}
+ def mock(*args)
+ args + ["mock"]
end
end
- it "allows requests to be created in a forward compatible structure" do
- expect(SampleService.new.get_sample("likewhoa")).to contain_exactly("likewhoa")
- expect(SampleService.new.list_samples("likewhoa")).to eq("samples" => ["likewhoa"])
+ it "should execute a new-style request" do
+ expect(SampleService.new.list_samples("sample1")).to eq([{}, "sample1", "real"])
+ expect(SampleService::Real.new.list_samples("sample2")).to eq(["sample2", "real"])
+ expect(SampleService::Mock.new.list_samples("sample3")).to eq(["sample3", "mock"])
+
+ # service access
+ expect(SampleService.new(:key => "value").list_samples("stat")).to eq([{:key => "value"}, "stat", "real"])
end
end