Class: ItunesReceiptMock::Receipt

Inherits:
Object
  • Object
show all
Includes:
Mixins
Defined in:
lib/itunes_receipt_mock/receipt.rb

Overview

ItunesReceiptMock::Receipt

Constant Summary collapse

STATUS_CODES =
[0, 21_000] + (21_002..21_008).to_a
DEFAULTS =
{
  status: 0,
  request_date: proc { Time.now },
  environment: 'Production',
  bundle_id: nil,
  adam_id: 1,
  app_item_id: 1,
  application_version: 1,
  download_id: 1,
  version_external_identifier: 1,
  original_purchase_date: proc { Time.now },
  original_application_version: 1
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Receipt

Returns a new instance of Receipt.



30
31
32
33
34
# File 'lib/itunes_receipt_mock/receipt.rb', line 30

def initialize(options = {})
  send_defaults(DEFAULTS, options)
  @transactions = TransactionProxy.new(self)
  fail MissingArgumentError, 'bundle_id is required' unless @bundle_id
end

Instance Attribute Details

#adam_idObject

Returns the value of attribute adam_id.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def adam_id
  @adam_id
end

#app_item_idObject

Returns the value of attribute app_item_id.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def app_item_id
  @app_item_id
end

#application_versionObject

Returns the value of attribute application_version.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def application_version
  @application_version
end

#bundle_idObject

Returns the value of attribute bundle_id.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def bundle_id
  @bundle_id
end

#download_idObject

Returns the value of attribute download_id.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def download_id
  @download_id
end

#environmentObject

Returns the value of attribute environment.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def environment
  @environment
end

#original_application_versionObject

Returns the value of attribute original_application_version.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def original_application_version
  @original_application_version
end

#original_purchase_dateObject

Returns the value of attribute original_purchase_date.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def original_purchase_date
  @original_purchase_date
end

#request_dateObject

Returns the value of attribute request_date.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def request_date
  @request_date
end

#statusObject

Returns the value of attribute status.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def status
  @status
end

#transactionsObject (readonly)

Returns the value of attribute transactions.



24
25
26
# File 'lib/itunes_receipt_mock/receipt.rb', line 24

def transactions
  @transactions
end

#version_external_identifierObject

Returns the value of attribute version_external_identifier.



25
26
27
# File 'lib/itunes_receipt_mock/receipt.rb', line 25

def version_external_identifier
  @version_external_identifier
end

Instance Method Details

#as_jsonObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/itunes_receipt_mock/receipt.rb', line 36

def as_json
  result = { 'status' => status }
  if status == 0
    result.merge!(
      'status' => status,
      'environment' => environment,
      'receipt' => inner_json,
      'latest_receipt_info' => transactions.latest_receipt_info
    )
    result.merge!(
      'latest_receipt' => Base64.strict_encode64(result.to_json)
    )
  end
  result
end