Class: NeAPI::Testing::ResponseFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/ne_api/testing/response_factory.rb

Overview

テスト用レスポンスデータを生成するファクトリ

Examples:

商品データ生成

ResponseFactory.goods(goods_name: "テスト商品A")
ResponseFactory.goods_list(3)

受注データ生成

ResponseFactory.receive_order(receive_order_total_amount: 5000)

Class Method Summary collapse

Class Method Details

.busy_errorHash

混雑エラー(リトライ対象)を生成

Returns:

  • (Hash)


199
200
201
# File 'lib/ne_api/testing/response_factory.rb', line 199

def busy_error
  error(code: "003001", message: "Next Engineが大変混み合っています")
end

.company_info(overrides = {}) ⇒ Hash

会社情報を生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


133
134
135
136
137
138
139
140
# File 'lib/ne_api/testing/response_factory.rb', line 133

def company_info(overrides = {})
  {
    "company_id" => "12345",
    "company_name" => "テスト会社",
    "company_ne_id" => "NE123456",
    "company_kana" => "テストカイシャ"
  }.merge(stringify_keys(overrides))
end

.error(code: "001001", message: "エラーが発生しました") ⇒ Hash

エラーレスポンスを生成

Parameters:

  • code (String) (defaults to: "001001")

    エラーコード

  • message (String) (defaults to: "エラーが発生しました")

    エラーメッセージ

Returns:

  • (Hash)


188
189
190
191
192
193
194
# File 'lib/ne_api/testing/response_factory.rb', line 188

def error(code: "001001", message: "エラーが発生しました")
  {
    "result" => "error",
    "code" => code,
    "message" => message
  }
end

.goods(overrides = {}) ⇒ Hash

商品マスタデータを生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


20
21
22
23
24
25
26
# File 'lib/ne_api/testing/response_factory.rb', line 20

def goods(overrides = {})
  {
    "goods_id" => SecureRandom.hex(8),
    "goods_name" => "テスト商品",
    "goods_jan_code" => "4912345678901"
  }.merge(stringify_keys(overrides))
end

.goods_list(count = 3) {|item, index| ... } ⇒ Array<Hash>

商品リストを生成

Parameters:

  • count (Integer) (defaults to: 3)

    生成数

Yields:

  • (item, index)

    各アイテムをカスタマイズするブロック

Returns:

  • (Array<Hash>)


33
34
35
36
37
38
# File 'lib/ne_api/testing/response_factory.rb', line 33

def goods_list(count = 3, &block)
  count.times.map do |i|
    item = goods("goods_id" => "GOODS#{format('%03d', i + 1)}", "goods_name" => "テスト商品#{i + 1}")
    block ? block.call(item, i) : item
  end
end

.receive_order(overrides = {}) ⇒ Hash

受注データを生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/ne_api/testing/response_factory.rb', line 71

def receive_order(overrides = {})
  {
    "receive_order_id" => SecureRandom.hex(8),
    "receive_order_shop_id" => "1",
    "receive_order_shop_cut_form_id" => "ORD-#{SecureRandom.hex(4).upcase}",
    "receive_order_date" => Time.now.strftime("%Y-%m-%d %H:%M:%S"),
    "receive_order_order_status_id" => "10",
    "receive_order_order_status_name" => "新規受付",
    "receive_order_delivery_id" => "1",
    "receive_order_delivery_name" => "ヤマト運輸",
    "receive_order_payment_method_id" => "1",
    "receive_order_payment_method_name" => "クレジットカード",
    "receive_order_total_amount" => 1000,
    "receive_order_tax_amount" => 100,
    "receive_order_goods_amount" => 900,
    "receive_order_delivery_fee_amount" => 0,
    "receive_order_purchaser_name" => "テスト顧客",
    "receive_order_purchaser_kana" => "テストコキャク",
    "receive_order_purchaser_zip_code" => "100-0001",
    "receive_order_purchaser_address1" => "東京都千代田区",
    "receive_order_purchaser_address2" => "1-1-1",
    "receive_order_purchaser_tel" => "03-1234-5678",
    "receive_order_purchaser_mail_address" => "[email protected]",
    "receive_order_consignee_name" => "テスト顧客",
    "receive_order_consignee_zip_code" => "100-0001",
    "receive_order_consignee_address1" => "東京都千代田区",
    "receive_order_consignee_address2" => "1-1-1",
    "receive_order_consignee_tel" => "03-1234-5678"
  }.merge(stringify_keys(overrides))
end

.receive_order_list(count = 3, &block) ⇒ Array<Hash>

受注リストを生成

Parameters:

  • count (Integer) (defaults to: 3)

    生成数

Returns:

  • (Array<Hash>)


106
107
108
109
110
111
# File 'lib/ne_api/testing/response_factory.rb', line 106

def receive_order_list(count = 3, &block)
  count.times.map do |i|
    item = receive_order("receive_order_shop_cut_form_id" => "ORD-#{format('%04d', i + 1)}")
    block ? block.call(item, i) : item
  end
end

.receive_order_row(overrides = {}) ⇒ Hash

受注明細データを生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


117
118
119
120
121
122
123
124
125
126
127
# File 'lib/ne_api/testing/response_factory.rb', line 117

def receive_order_row(overrides = {})
  {
    "receive_order_row_receive_order_id" => SecureRandom.hex(8),
    "receive_order_row_no" => "1",
    "receive_order_row_goods_id" => SecureRandom.hex(8),
    "receive_order_row_goods_name" => "テスト商品",
    "receive_order_row_quantity" => 1,
    "receive_order_row_unit_price" => 1000,
    "receive_order_row_goods_option" => ""
  }.merge(stringify_keys(overrides))
end

.shop(overrides = {}) ⇒ Hash

店舗データを生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


158
159
160
161
162
163
164
165
166
167
# File 'lib/ne_api/testing/response_factory.rb', line 158

def shop(overrides = {})
  {
    "shop_id" => "1",
    "shop_name" => "テスト店舗",
    "shop_kana" => "テストテンポ",
    "shop_abbreviated_name" => "テスト",
    "shop_mall_id" => "1",
    "shop_deleted_flag" => "0"
  }.merge(stringify_keys(overrides))
end

.stock(overrides = {}) ⇒ Hash

在庫マスタデータを生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


44
45
46
47
48
49
50
51
52
53
54
# File 'lib/ne_api/testing/response_factory.rb', line 44

def stock(overrides = {})
  {
    "stock_goods_id" => SecureRandom.hex(8),
    "stock_quantity" => 100,
    "stock_allocation_quantity" => 10,
    "stock_defective_quantity" => 0,
    "stock_remaining_order_quantity" => 0,
    "stock_out_quantity" => 0,
    "stock_free_quantity" => 90
  }.merge(stringify_keys(overrides))
end

.stock_list(count = 3, &block) ⇒ Array<Hash>

在庫リストを生成

Parameters:

  • count (Integer) (defaults to: 3)

    生成数

Returns:

  • (Array<Hash>)


60
61
62
63
64
65
# File 'lib/ne_api/testing/response_factory.rb', line 60

def stock_list(count = 3, &block)
  count.times.map do |i|
    item = stock("stock_goods_id" => "GOODS#{format('%03d', i + 1)}")
    block ? block.call(item, i) : item
  end
end

.success_response(data: [], access_token: "test_access_token", refresh_token: "test_refresh_token") ⇒ Hash

成功レスポンスを生成(info系API用)

Parameters:

  • data (Array) (defaults to: [])

    データ配列

  • access_token (String) (defaults to: "test_access_token")

    アクセストークン

  • refresh_token (String) (defaults to: "test_refresh_token")

    リフレッシュトークン

Returns:

  • (Hash)


209
210
211
212
213
214
215
216
217
# File 'lib/ne_api/testing/response_factory.rb', line 209

def success_response(data: [], access_token: "test_access_token", refresh_token: "test_refresh_token")
  {
    "result" => "success",
    "data" => data,
    "count" => data.size.to_s,
    "access_token" => access_token,
    "refresh_token" => refresh_token
  }
end

.user_info(overrides = {}) ⇒ Hash

ユーザー情報を生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


146
147
148
149
150
151
152
# File 'lib/ne_api/testing/response_factory.rb', line 146

def (overrides = {})
  {
    "user_id" => "1",
    "user_name" => "テストユーザー",
    "user_mail" => "[email protected]"
  }.merge(stringify_keys(overrides))
end

.warehouse_stock(overrides = {}) ⇒ Hash

倉庫在庫データを生成

Parameters:

  • overrides (Hash) (defaults to: {})

    上書きする属性

Returns:

  • (Hash)


173
174
175
176
177
178
179
180
181
# File 'lib/ne_api/testing/response_factory.rb', line 173

def warehouse_stock(overrides = {})
  {
    "warehouse_stock_warehouse_id" => "1",
    "warehouse_stock_goods_id" => SecureRandom.hex(8),
    "warehouse_stock_quantity" => 100,
    "warehouse_stock_allocation_quantity" => 10,
    "warehouse_stock_free_quantity" => 90
  }.merge(stringify_keys(overrides))
end