From ceab2740c1f6e917ca5fc416febc4a70a66b4157 Mon Sep 17 00:00:00 2001 From: Remi Jannel Date: Tue, 30 Oct 2018 19:52:48 -0700 Subject: [PATCH] Add support for Radar List and ListItem resources --- .travis.yml | 2 +- lib/stripe.rb | 2 + lib/stripe/radar/value_list.rb | 14 +++++++ lib/stripe/radar/value_list_item.rb | 13 ++++++ lib/stripe/util.rb | 2 + test/stripe/radar/value_list_item_test.rb | 38 +++++++++++++++++ test/stripe/radar/value_list_test.rb | 51 +++++++++++++++++++++++ test/test_helper.rb | 2 +- 8 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 lib/stripe/radar/value_list.rb create mode 100644 lib/stripe/radar/value_list_item.rb create mode 100644 test/stripe/radar/value_list_item_test.rb create mode 100644 test/stripe/radar/value_list_test.rb diff --git a/.travis.yml b/.travis.yml index cb944d487..3169e499d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ sudo: false env: global: # If changing this number, please also change it in `test/test_helper.rb`. - - STRIPE_MOCK_VERSION=0.35.0 + - STRIPE_MOCK_VERSION=0.37.0 cache: directories: diff --git a/lib/stripe.rb b/lib/stripe.rb index d991acbfa..b26a307fb 100644 --- a/lib/stripe.rb +++ b/lib/stripe.rb @@ -75,6 +75,8 @@ require "stripe/person" require "stripe/plan" require "stripe/product" +require "stripe/radar/value_list" +require "stripe/radar/value_list_item" require "stripe/recipient" require "stripe/recipient_transfer" require "stripe/refund" diff --git a/lib/stripe/radar/value_list.rb b/lib/stripe/radar/value_list.rb new file mode 100644 index 000000000..ee9b42a3b --- /dev/null +++ b/lib/stripe/radar/value_list.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Stripe + module Radar + class ValueList < Stripe::APIResource + extend Stripe::APIOperations::Create + include Stripe::APIOperations::Delete + extend Stripe::APIOperations::List + include Stripe::APIOperations::Save + + OBJECT_NAME = "radar.value_list".freeze + end + end +end diff --git a/lib/stripe/radar/value_list_item.rb b/lib/stripe/radar/value_list_item.rb new file mode 100644 index 000000000..7e4f0b9e2 --- /dev/null +++ b/lib/stripe/radar/value_list_item.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Stripe + module Radar + class ValueListItem < Stripe::APIResource + extend Stripe::APIOperations::Create + include Stripe::APIOperations::Delete + extend Stripe::APIOperations::List + + OBJECT_NAME = "radar.value_list_item".freeze + end + end +end diff --git a/lib/stripe/util.rb b/lib/stripe/util.rb index 7fb2eb279..b1933687a 100644 --- a/lib/stripe/util.rb +++ b/lib/stripe/util.rb @@ -85,6 +85,8 @@ def self.object_classes # rubocop:disable Metrics/MethodLength Person::OBJECT_NAME => Person, Plan::OBJECT_NAME => Plan, Product::OBJECT_NAME => Product, + Radar::ValueList::OBJECT_NAME => Radar::ValueList, + Radar::ValueListItem::OBJECT_NAME => Radar::ValueListItem, Recipient::OBJECT_NAME => Recipient, RecipientTransfer::OBJECT_NAME => RecipientTransfer, Refund::OBJECT_NAME => Refund, diff --git a/test/stripe/radar/value_list_item_test.rb b/test/stripe/radar/value_list_item_test.rb new file mode 100644 index 000000000..4bba1c1b0 --- /dev/null +++ b/test/stripe/radar/value_list_item_test.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +require ::File.expand_path("../../../test_helper", __FILE__) + +module Stripe + module Radar + class ValueListItemTest < Test::Unit::TestCase + should "be listable" do + items = Stripe::Radar::ValueListItem.list(value_list: "rsl_123") + assert_requested :get, "#{Stripe.api_base}/v1/radar/value_list_items?value_list=rsl_123" + assert items.data.is_a?(Array) + assert items.first.is_a?(Stripe::Radar::ValueListItem) + end + + should "be retrievable" do + item = Stripe::Radar::ValueListItem.retrieve("rsli_123") + assert_requested :get, "#{Stripe.api_base}/v1/radar/value_list_items/rsli_123" + assert item.is_a?(Stripe::Radar::ValueListItem) + end + + should "be creatable" do + item = Stripe::Radar::ValueListItem.create( + value_list: "rsl_123", + value: "value" + ) + assert_requested :post, "#{Stripe.api_base}/v1/radar/value_list_items" + assert item.is_a?(Stripe::Radar::ValueListItem) + end + + should "be deletable" do + list = Stripe::Radar::ValueListItem.retrieve("rsli_123") + list = list.delete + assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_list_items/rsli_123" + assert list.is_a?(Stripe::Radar::ValueListItem) + end + end + end +end diff --git a/test/stripe/radar/value_list_test.rb b/test/stripe/radar/value_list_test.rb new file mode 100644 index 000000000..a97f79703 --- /dev/null +++ b/test/stripe/radar/value_list_test.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require ::File.expand_path("../../../test_helper", __FILE__) + +module Stripe + module Radar + class ValueListTest < Test::Unit::TestCase + should "be listable" do + lists = Stripe::Radar::ValueList.list + assert_requested :get, "#{Stripe.api_base}/v1/radar/value_lists" + assert lists.data.is_a?(Array) + assert lists.first.is_a?(Stripe::Radar::ValueList) + end + + should "be retrievable" do + list = Stripe::Radar::ValueList.retrieve("rsl_123") + assert_requested :get, "#{Stripe.api_base}/v1/radar/value_lists/rsl_123" + assert list.is_a?(Stripe::Radar::ValueList) + end + + should "be creatable" do + list = Stripe::Radar::ValueList.create( + alias: "list_alias", + name: "list_name" + ) + assert_requested :post, "#{Stripe.api_base}/v1/radar/value_lists" + assert list.is_a?(Stripe::Radar::ValueList) + end + + should "be saveable" do + list = Stripe::Radar::ValueList.retrieve("rsl_123") + list.metadata["key"] = "value" + list.save + assert_requested :post, "#{Stripe.api_base}/v1/radar/value_lists/rsl_123" + end + + should "be updateable" do + list = Stripe::Radar::ValueList.update("rsl_123", metadata: { key: "value" }) + assert_requested :post, "#{Stripe.api_base}/v1/radar/value_lists/rsl_123" + assert list.is_a?(Stripe::Radar::ValueList) + end + + should "be deletable" do + list = Stripe::Radar::ValueList.retrieve("rsl_123") + list = list.delete + assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_lists/rsl_123" + assert list.is_a?(Stripe::Radar::ValueList) + end + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index f3c2c3d98..be27d6a81 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -16,7 +16,7 @@ require ::File.expand_path("../test_data", __FILE__) # If changing this number, please also change it in `.travis.yml`. -MOCK_MINIMUM_VERSION = "0.35.0".freeze +MOCK_MINIMUM_VERSION = "0.37.0".freeze MOCK_PORT = ENV["STRIPE_MOCK_PORT"] || 12_111 # Disable all real network connections except those that are outgoing to