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