Sha256: 6f82ac71e445ef2d588cd2fe90fcf3b1a9f90beaed1efdc5f4641854fb1105ec

Contents?: true

Size: 1.31 KB

Versions: 5

Compression:

Stored size: 1.31 KB

Contents

def i_want?(name)
  @what.find { |desired| name[desired] }
end

When "there is a required item" do |resource|
  if resource.keys.first == "items"
    @desired = resource.items.item.find { |item| i_want?(item.name) }
  else
    false
  end
end

When "there is a basket" do |resource|
  resource.values.first.links.basket
end

When "there is a payment" do |resource|
  resource.values.first.links.payment
end

When "it is a basket" do |resource|
  resource.keys.first == "basket"
end

When "didnt create a basket" do |resource|
  @basket_resource.nil?
end

When "there are still products to buy" do |resource|
  !@what.empty?
end

Then "start again" do |resource, regex, mikyung|
  mikyung.start
end

def pick_desired
  @what.delete_if { |desired| @desired.name[desired] }
end

Then "create the basket" do |resource|
  pick_desired
  basket = {:basket => {:items => [{:id => @desired['id']}]} }
  @basket_resource = resource.items.links.basket.post! basket
end

Then "add to the basket" do |resource|
  pick_desired
  items = {"items" => [{:id => @desired['id']}]}
  @basket_resource = @basket_resource.basket.links.self.patch! items
end

Then "pay" do |resource|
  payment = {:payment => {:cardnumber => "4850000000000001", :cardholder => "guilherme silveira", :amount => resource.basket.price}}
  resource.basket.links.payment.post! payment
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
restfulie-nosqlite-1.0.4 full-examples/rest_from_scratch/part_3/spec/client/steps/buying_process.rb
restfulie-1.1.1 full-examples/rest_from_scratch/part_3/spec/client/steps/buying_process.rb
restfulie-1.1.0 full-examples/rest_from_scratch/part_3/spec/client/steps/buying_process.rb
restfulie-nosqlite-1.0.3 full-examples/rest_from_scratch/part_3/spec/client/steps/buying_process.rb
restfulie-1.0.3 full-examples/rest_from_scratch/part_3/spec/client/steps/buying_process.rb