Class: GCM::UnregisteredDeviceTokenConnection

Inherits:
Object
  • Object
show all
Includes:
TokenSerializer
Defined in:
lib/mercurius/testing/gcm/unregistered_device_token_connection.rb

Instance Method Summary collapse

Methods included from TokenSerializer

#canonical_token_json, #invalid_token_json, #valid_token_json

Constructor Details

#initialize(*invalid_tokens) ⇒ UnregisteredDeviceTokenConnection

Returns a new instance of UnregisteredDeviceTokenConnection.



5
6
7
# File 'lib/mercurius/testing/gcm/unregistered_device_token_connection.rb', line 5

def initialize(*invalid_tokens)
  @invalid_tokens = invalid_tokens
end

Instance Method Details

#write(json) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mercurius/testing/gcm/unregistered_device_token_connection.rb', line 9

def write(json)
  tokens = json[:registration_ids] || Array(json[:to])

  json = {
    'multicast_id' => '123',
    'success' => valid_tokens_count(tokens),
    'failure' => invalid_tokens_count(tokens),
    'canonical_ids' => 0,
    'results' => tokens.map do |token|
      if valid? token
        valid_token_json token
      else
        invalid_token_json token, 'NotRegistered'
      end
    end
  }.to_json

  Mercurius::FakeResponse.new body: json, status: 200
end