<testsuite name="rspec" tests="1241" skipped="3" failures="33" errors="0" time="749.984705" timestamp="2022-05-13T11:14:14+00:00" hostname="fv-az290-483">
<properties>
<property name="seed" value="5643"/>
</properties>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#current (#TA2) is required" file="./spec/unit/models/connection_state_change_spec.rb" time="0.007365"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#current (#TA2) is an attribute" file="./spec/unit/models/connection_state_change_spec.rb" time="0.001207"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#event(#TA5) is an attribute" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000794"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#event(#TA5) is not required" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000780"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange invalid attributes raises an argument error" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000760"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#reason (#TA3) is an attribute" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000719"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#reason (#TA3) is not required" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000718"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#previous(#TA2) is an attribute" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000768"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#previous(#TA2) is required" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000751"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#retry_in (#TA2) is an attribute" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000733"></testcase>
<testcase classname="spec.unit.models.connection_state_change_spec" name="Ably::Models::ConnectionStateChange#retry_in (#TA2) is not required" file="./spec/unit/models/connection_state_change_spec.rb" time="0.000689"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection callbacks are supported for valid STATE events" file="./spec/unit/realtime/connection_spec.rb" time="0.003958"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection callbacks fail with unacceptable STATE event names" file="./spec/unit/realtime/connection_spec.rb" time="0.001443"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection behaves like an incoming protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub fail with unacceptable STATE event names" file="./spec/unit/realtime/connection_spec.rb" time="0.001347"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection behaves like an incoming protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub supports valid ProtocolMessage messages" file="./spec/unit/realtime/connection_spec.rb" time="0.001382"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection behaves like an outgoing protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub supports valid ProtocolMessage messages" file="./spec/unit/realtime/connection_spec.rb" time="0.001365"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection behaves like an outgoing protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub fail with unacceptable STATE event names" file="./spec/unit/realtime/connection_spec.rb" time="0.001328"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection connection resume callbacks #on_resume registers a callback" file="./spec/unit/realtime/connection_spec.rb" time="0.001255"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection connection resume callbacks #trigger_resumed executes the callbacks" file="./spec/unit/realtime/connection_spec.rb" time="0.001257"></testcase>
<testcase classname="spec.unit.realtime.connection_spec" name="Ably::Realtime::Connection connection resume callbacks #off_resume registers a callback" file="./spec/unit/realtime/connection_spec.rb" time="0.001236"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels [] creates a channel" file="./spec/unit/rest/channels_spec.rb" time="0.002318"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when channel doesn&apos;t exist hash creates a channel (RSN3a)" file="./spec/unit/rest/channels_spec.rb" time="0.001881"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when channel doesn&apos;t exist hash is expected to be a kind of Hash" file="./spec/unit/rest/channels_spec.rb" time="0.002097"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when channel doesn&apos;t exist ChannelOptions object is expected to be a kind of Ably::Models::ChannelOptions" file="./spec/unit/rest/channels_spec.rb" time="0.001531"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when channel doesn&apos;t exist ChannelOptions object creates a channel (RSN3a)" file="./spec/unit/rest/channels_spec.rb" time="0.001101"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists ChannelOptions object will reuse a channel object if it exists (RSN3a)" file="./spec/unit/rest/channels_spec.rb" time="0.001032"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists ChannelOptions object is expected to be a kind of Ably::Models::ChannelOptions" file="./spec/unit/rest/channels_spec.rb" time="0.000879"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists with new channel_options modes ChannelOptions object is expected to be a kind of Ably::Models::ChannelOptions" file="./spec/unit/rest/channels_spec.rb" time="0.000827"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists with new channel_options modes ChannelOptions object will update channel with provided options modes (RSN3c)" file="./spec/unit/rest/channels_spec.rb" time="0.001520"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists with new channel_options modes hash will update channel with provided options modes (RSN3c)" file="./spec/unit/rest/channels_spec.rb" time="0.001104"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists with new channel_options modes hash is expected to be a kind of Hash" file="./spec/unit/rest/channels_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists hash will reuse a channel object if it exists (RSN3a)" file="./spec/unit/rest/channels_spec.rb" time="0.001035"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#get when an existing channel exists hash is expected to be a kind of Hash" file="./spec/unit/rest/channels_spec.rb" time="0.000768"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels destroying channels #release releases the channel resoures" file="./spec/unit/rest/channels_spec.rb" time="0.001016"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#fetch retrieves a channel if it exists" file="./spec/unit/rest/channels_spec.rb" time="0.000921"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels#fetch calls the block if channel is missing" file="./spec/unit/rest/channels_spec.rb" time="0.000803"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels is Enumerable allows enumeration" file="./spec/unit/rest/channels_spec.rb" time="0.001288"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels is Enumerable provides #length" file="./spec/unit/rest/channels_spec.rb" time="0.001202"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels is Enumerable #each yields each channel" file="./spec/unit/rest/channels_spec.rb" time="0.001228"></testcase>
<testcase classname="spec.unit.rest.channels_spec" name="Ably::Rest::Channels is Enumerable #each returns an enumerator" file="./spec/unit/rest/channels_spec.rb" time="0.001213"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto get_default_params with provided params overrides the defaults" file="./spec/unit/util/crypto_spec.rb" time="0.001039"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto get_default_params without a :key param raises an exception" file="./spec/unit/util/crypto_spec.rb" time="0.000855"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto get_default_params with just a :key param contains the provided key" file="./spec/unit/util/crypto_spec.rb" time="0.000937"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto get_default_params with just a :key param uses the defaults" file="./spec/unit/util/crypto_spec.rb" time="0.000981"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto get_default_params with just a :key param returns a CipherParams object" file="./spec/unit/util/crypto_spec.rb" time="0.000893"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto get_default_params with a base64-encoded :key param converts the key to binary" file="./spec/unit/util/crypto_spec.rb" time="0.000937"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto defaults match other client libraries" file="./spec/unit/util/crypto_spec.rb" time="0.000721"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto encrypts &amp; decrypt #encrypt encrypts a string" file="./spec/unit/util/crypto_spec.rb" time="0.001111"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto encrypts &amp; decrypt #decrypt decrypts a string" file="./spec/unit/util/crypto_spec.rb" time="0.001015"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto encrypting an empty string raises an ArgumentError" file="./spec/unit/util/crypto_spec.rb" time="0.001073"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto using shared client lib fixture data with AES-256-CBC behaves like an Ably encrypter and decrypter (#RTL7d) text payload encrypts exactly the same binary data as other client libraries" file="./spec/unit/util/crypto_spec.rb" time="0.001609"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto using shared client lib fixture data with AES-256-CBC behaves like an Ably encrypter and decrypter (#RTL7d) text payload decrypts exactly the same binary data as other client libraries" file="./spec/unit/util/crypto_spec.rb" time="0.001508"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto using shared client lib fixture data with AES-128-CBC behaves like an Ably encrypter and decrypter (#RTL7d) text payload encrypts exactly the same binary data as other client libraries" file="./spec/unit/util/crypto_spec.rb" time="0.001139"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto using shared client lib fixture data with AES-128-CBC behaves like an Ably encrypter and decrypter (#RTL7d) text payload decrypts exactly the same binary data as other client libraries" file="./spec/unit/util/crypto_spec.rb" time="0.001121"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#platform and #platform= setter accepts nil" file="./spec/unit/models/device_details_spec.rb" time="0.001832"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#platform and #platform= setter accepts a string value and getter returns the new value" file="./spec/unit/models/device_details_spec.rb" time="0.000892"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#platform and #platform= rejects non string or nil values" file="./spec/unit/models/device_details_spec.rb" time="0.000817"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#form_factor and #form_factor= setter accepts nil" file="./spec/unit/models/device_details_spec.rb" time="0.000905"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#form_factor and #form_factor= setter accepts a string value and getter returns the new value" file="./spec/unit/models/device_details_spec.rb" time="0.005229"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#form_factor and #form_factor= rejects non string or nil values" file="./spec/unit/models/device_details_spec.rb" time="0.000761"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#id and #id= rejects non string or nil values" file="./spec/unit/models/device_details_spec.rb" time="0.000720"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#id and #id= setter accepts a string value and getter returns the new value" file="./spec/unit/models/device_details_spec.rb" time="0.000775"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#id and #id= setter accepts nil" file="./spec/unit/models/device_details_spec.rb" time="0.000752"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#metadata and #metadata= rejects non Hash or nil values" file="./spec/unit/models/device_details_spec.rb" time="0.000712"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#metadata and #metadata= setter accepts a Hash value and getter returns the new value" file="./spec/unit/models/device_details_spec.rb" time="0.000834"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#metadata and #metadata= setter accepts nil but always returns an empty hash" file="./spec/unit/models/device_details_spec.rb" time="0.000761"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails camelCase constructor attributes are rubyfied and exposed as underscore case" file="./spec/unit/models/device_details_spec.rb" time="0.000719"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails camelCase constructor attributes are generated when the object is serialised to JSON" file="./spec/unit/models/device_details_spec.rb" time="0.000716"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#device_secret and #device_secret= rejects non string or nil values" file="./spec/unit/models/device_details_spec.rb" time="0.000763"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#device_secret and #device_secret= setter accepts a string value and getter returns the new value" file="./spec/unit/models/device_details_spec.rb" time="0.000798"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#device_secret and #device_secret= setter accepts nil" file="./spec/unit/models/device_details_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#push and #push= setter accepts a Hash value and getter returns a DevicePushDetails object" file="./spec/unit/models/device_details_spec.rb" time="0.000909"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#push and #push= setter accepts a DevicePushDetails object and getter returns a DevicePushDetails object" file="./spec/unit/models/device_details_spec.rb" time="0.000915"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#push and #push= rejects non Hash, DevicePushDetails or nil values" file="./spec/unit/models/device_details_spec.rb" time="0.000706"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#push and #push= setter accepts nil but always returns a DevicePushDetails object" file="./spec/unit/models/device_details_spec.rb" time="0.000830"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#client_id and #client_id= setter accepts nil" file="./spec/unit/models/device_details_spec.rb" time="0.000807"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#client_id and #client_id= rejects non string or nil values" file="./spec/unit/models/device_details_spec.rb" time="0.000700"></testcase>
<testcase classname="spec.unit.models.device_details_spec" name="Ably::Models::DeviceDetails#client_id and #client_id= setter accepts a string value and getter returns the new value" file="./spec/unit/models/device_details_spec.rb" time="0.000807"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest == is false when class type differs" file="./spec/unit/models/token_request_spec.rb" time="0.000734"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest == is true when attributes are the same" file="./spec/unit/models/token_request_spec.rb" time="0.000806"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest == is false when attributes are not the same" file="./spec/unit/models/token_request_spec.rb" time="0.000774"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest attributes #capability retrieves attribute :capability as parsed JSON" file="./spec/unit/models/token_request_spec.rb" time="0.000843"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest attributes #timestamp with :timestamp option as Time in constructor retrieves attribute :timestamp as Time" file="./spec/unit/models/token_request_spec.rb" time="0.000843"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest attributes #timestamp with :timestamp option as milliseconds in constructor retrieves attribute :timestamp as Time" file="./spec/unit/models/token_request_spec.rb" time="0.000779"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest attributes #timestamp when converted to JSON is in milliseconds since epoch" file="./spec/unit/models/token_request_spec.rb" time="0.000778"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest attributes #ttl when converted to JSON is in milliseconds since epoch" file="./spec/unit/models/token_request_spec.rb" time="0.000793"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest attributes #ttl with :ttl option as milliseconds in constructor retrieves attribute :ttl as seconds" file="./spec/unit/models/token_request_spec.rb" time="0.000760"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest from_json (#TE6) with JSON string returns a valid TokenRequest object" file="./spec/unit/models/token_request_spec.rb" time="0.001049"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest from_json (#TE6) with Ruby idiomatic Hash object returns a valid TokenRequest object" file="./spec/unit/models/token_request_spec.rb" time="0.001533"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest from_json (#TE6) with JSON-like object returns a valid TokenRequest object" file="./spec/unit/models/token_request_spec.rb" time="0.000982"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model attributes #client_id retrieves attribute :client_id" file="./spec/unit/models/token_request_spec.rb" time="0.000817"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model attributes #mac retrieves attribute :mac" file="./spec/unit/models/token_request_spec.rb" time="0.000783"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/token_request_spec.rb" time="0.000842"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model attributes #nonce retrieves attribute :nonce" file="./spec/unit/models/token_request_spec.rb" time="0.000815"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model attributes #key_name retrieves attribute :key_name" file="./spec/unit/models/token_request_spec.rb" time="0.000796"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/token_request_spec.rb" time="0.000771"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model is immutable dups options" file="./spec/unit/models/token_request_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model is immutable prevents changes" file="./spec/unit/models/token_request_spec.rb" time="0.000828"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/token_request_spec.rb" time="0.002847"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model #== is true when attributes are the same" file="./spec/unit/models/token_request_spec.rb" time="0.000869"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/token_request_spec.rb" time="0.000878"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model #== is false when class type differs" file="./spec/unit/models/token_request_spec.rb" time="0.000788"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/token_request_spec.rb" time="0.000863"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest TokenRequest conversion methods with a TokenRequest object returns the TokenRequest object" file="./spec/unit/models/token_request_spec.rb" time="0.000792"></testcase>
<testcase classname="spec.unit.models.token_request_spec" name="Ably::Models::TokenRequest TokenRequest conversion methods with a JSON object returns a new TokenRequest object from the JSON" file="./spec/unit/models/token_request_spec.rb" time="0.000741"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter #state= sets current state" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000880"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter #state returns current state" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000722"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter #change_state sets current state" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000844"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#change_state with arguments passes the arguments through to the executed callback" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000844"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#unsafe_once_or_if success block catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000885"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#unsafe_once_or_if failure block catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000912"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with blocks that raise exceptions success block catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/state_emitter_spec.rb" time="0.002022"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with blocks that raise exceptions failure block catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/state_emitter_spec.rb" time="0.001253"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block failure block is never called after success block was called" file="./spec/unit/modules/state_emitter_spec.rb" time="0.001040"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block failure block is called once a state other than target_state is reached" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000886"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block failure block is never called again once the block has been called previously" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000937"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block failure block has arguments from the error state" file="./spec/unit/modules/state_emitter_spec.rb" time="0.002418"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block success block is called once target_state is reached" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000914"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block success block is never called again once target_state is reached" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000946"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block success block is never called after failure block was called" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000942"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with :else option block blocks are not called if the state does not change" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000851"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if without :else option block calls the block only once" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000897"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if without :else option block calls the block if in the provided state" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000748"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if without :else option block calls the block when the state is reached" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000843"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with an array of targets calls the block only once" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000924"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with an array of targets calls the block if in the provided state" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000759"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with an array of targets does not remove all blocks on success" file="./spec/unit/modules/state_emitter_spec.rb" time="0.001029"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if with an array of targets calls the block when one of the states is reached" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000869"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if state change arguments are passed to success blocks" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000823"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_or_if state change arguments are passed to else blocks" file="./spec/unit/modules/state_emitter_spec.rb" time="0.001028"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#unsafe_once_state_changed does not catch exceptions in the provided block" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000901"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_state_changed is not called if the state does not change" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000870"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_state_changed catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/state_emitter_spec.rb" time="0.001188"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_state_changed emits arguments to the block" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000897"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#once_state_changed calls the block for any state change once" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000905"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#state STATE coercion prevents invalid STATE values" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000908"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#state STATE coercion allows valid STATE values" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000837"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#state? returns true if state matches" file="./spec/unit/modules/state_emitter_spec.rb" time="0.004209"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#state? returns false if state does not match" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#state? and convenience predicates for states returns false for #connecting? if state does not match" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000707"></testcase>
<testcase classname="spec.unit.modules.state_emitter_spec" name="Ably::Modules::StateEmitter#state? and convenience predicates for states returns true for #initializing? if state matches" file="./spec/unit/modules/state_emitter_spec.rb" time="0.000718"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper does not provide methods for keys that are missing" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000817"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper provides accessor method to values using snake_case" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000705"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper #attributes returns raw Hash object" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000658"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper provides methods to read values using snake_case" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000725"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper provides methods to write values using snake_case" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000821"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper provides accessor set method to values using snake_case" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000730"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper Kernel.Array like method to create a IdiomaticRubyWrapper will return the same IdiomaticRubyWrapper if passed in" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000680"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper Kernel.Array like method to create a IdiomaticRubyWrapper will return the same IdiomaticRubyWrapper if passed in" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000673"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper recursively wrapping child objects wraps Hashes" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000763"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper recursively wrapping child objects ignores arrays" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000733"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper recursively wrapping child objects :stop_at option with string does not wrap the matching key" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000790"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper recursively wrapping child objects :stop_at option with symbol does not wrap the matching key" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck supports Hash-like #keys" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000774"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck returns correct size" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000710"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #to_json returns child JSON objects in the JSON stringified" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000776"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #to_json returns JSON stringified" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000745"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck is Enumerable" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000665"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck supports Hash-like #values" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000745"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #to_msgpack returns a msgpack object" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000863"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #fetch fetches the key" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000737"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #fetch calls the block if key does not exist" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000709"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #fetch raise an exception if key does not exist" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #fetch allows a default value argument" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000740"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #to_json with changes returns stringified JSON with changes" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000896"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #== returns false if different values to another Hash" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000745"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #== returns false if comparing with a non Hash/IdiomaticRubyWrapper object" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000658"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #== presents itself as a symbolized version of the object" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000708"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #== returns false if different values to another IdiomaticRubyWrapper" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000752"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #== compares with itself" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000736"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #dup returns a new object with the underlying JSON duped" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001796"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #dup keeps the stop_at list intact" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000793"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #dup returns a new IdiomaticRubyWrapper with the same underlying Hash object" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000704"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #to_hash returns a hash" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000796"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck #to_hash converts hashes within hashes" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000776"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck iterable yields key value pairs" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000884"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck iterable #each returns an enumerator" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000753"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck iterable #each yields key value pairs" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000805"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper acts like a duck with snake case JSON #to_json uses mixedCase for any non mixedCase keys" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000751"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData returns nil for non existent keys" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000782"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData mixed_case_symbol allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000835"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData mixed_case_symbol updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000797"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData mixed_case_symbol updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001061"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData lower_case_string allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData lower_case_string updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001096"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData lower_case_string updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000774"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData camel_case_symbol allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000742"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData camel_case_symbol updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000782"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData camel_case_symbol updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001060"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData snake_case_string allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000727"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData snake_case_string updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000771"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData snake_case_string updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001072"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData snake_case_symbol allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000793"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData snake_case_symbol updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001058"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData snake_case_symbol updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000791"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData mixed_case_string allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000755"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData mixed_case_string updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000839"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData mixed_case_string updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001057"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData lower_case_symbol allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000777"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData lower_case_symbol updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000804"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData lower_case_symbol updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001075"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData symbol allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000750"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData symbol updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001052"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData symbol updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000758"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData new keys uses mixedCase" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000854"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData camel_case_string allows access to non conformant keys but prefers correct mixedCaseSyntax" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000798"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData camel_case_string updates returns the new value in the JSON" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.001098"></testcase>
<testcase classname="spec.unit.models.idiomatic_ruby_wrapper_spec" name="Ably::Models::IdiomaticRubyWrapper non standard mixedCaseData camel_case_string updates returns the new value" file="./spec/unit/models/idiomatic_ruby_wrapper_spec.rb" time="0.000865"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription camelCase constructor attributes are rubyfied and exposed as underscore case" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000893"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription camelCase constructor attributes are generated when the object is serialised to JSON" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000895"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#channel and #channel= setter accepts nil" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000928"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#channel and #channel= rejects non string or nil values" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000896"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#channel and #channel= setter accepts a string value and getter returns the new value" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000873"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription conversion method PushChannelSubscription accepts a PushChannelSubscription object" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000965"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#device_id and #device_id= rejects non string or nil values" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.004164"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#device_id and #device_id= setter accepts a string value and getter returns the new value" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000837"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#device_id and #device_id= setter accepts nil" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000846"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#for_client_id constructor with an invalid valid object accepts a Hash object" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000814"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#for_client_id constructor with a valid object accepts a Hash object" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000847"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#client_id and #client_id= setter accepts nil" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000818"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#client_id and #client_id= rejects non string or nil values" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000788"></testcase>
<testcase classname="spec.unit.models.push_channel_subscription_spec" name="Ably::Models::PushChannelSubscription#client_id and #client_id= setter accepts a string value and getter returns the new value" file="./spec/unit/models/push_channel_subscription_spec.rb" time="0.000776"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with specified params in the constructor #algorithm contains the algorithm" file="./spec/unit/models/cipher_params_spec.rb" time="0.000913"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with specified params in the constructor #cipher_type contains the complete algorithm string as an upper case string" file="./spec/unit/models/cipher_params_spec.rb" time="0.000882"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with specified params in the constructor #mode contains the mode" file="./spec/unit/models/cipher_params_spec.rb" time="0.000914"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with specified params in the constructor #key_length contains the key_length" file="./spec/unit/models/cipher_params_spec.rb" time="0.000850"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams :key missing from constructor raises an exception" file="./spec/unit/models/cipher_params_spec.rb" time="0.000796"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with combined param in the constructor #algorithm contains the algorithm" file="./spec/unit/models/cipher_params_spec.rb" time="0.000943"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with combined param in the constructor #key_length contains the key_length" file="./spec/unit/models/cipher_params_spec.rb" time="0.000955"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with combined param in the constructor #cipher_type contains the complete algorithm string as an upper case string" file="./spec/unit/models/cipher_params_spec.rb" time="0.000958"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams with combined param in the constructor #mode contains the mode" file="./spec/unit/models/cipher_params_spec.rb" time="0.000949"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams#key with :key in constructor as nil raises an exception" file="./spec/unit/models/cipher_params_spec.rb" time="0.000784"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams#key with :key in constructor as a binary encoded string contains the binary string" file="./spec/unit/models/cipher_params_spec.rb" time="0.000913"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams#key with :key in constructor as a base64 encoded string is a binary representation of the base64 encoded string" file="./spec/unit/models/cipher_params_spec.rb" time="0.000927"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams#key with :key in constructor with an invalid type raises an exception" file="./spec/unit/models/cipher_params_spec.rb" time="0.000777"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams#key with :key in constructor as a URL safe base64 encoded string is a binary representation of the URL safe base64 encoded string" file="./spec/unit/models/cipher_params_spec.rb" time="0.000943"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams#key with :key in constructor with an incompatible :key_length constructor param raises an exception" file="./spec/unit/models/cipher_params_spec.rb" time="0.000885"></testcase>
<testcase classname="spec.unit.models.cipher_params_spec" name="Ably::Models::CipherParams#key with :key in constructor with an unsupported :key_length for aes-cbc encryption raises an exception" file="./spec/unit/models/cipher_params_spec.rb" time="0.000926"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel is constructed with a channel" file="./spec/unit/rest/push_channel_spec.rb" time="0.000835"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel raises an exception if constructed with an invalid type" file="./spec/unit/rest/push_channel_spec.rb" time="0.000727"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel exposes the channel as attribute #channel" file="./spec/unit/rest/push_channel_spec.rb" time="0.000781"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel is available in the #push attribute of the channel" file="./spec/unit/rest/push_channel_spec.rb" time="0.000761"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel methods not implemented as push notifications #unsubscribe_client_id raises an unsupported exception" file="./spec/unit/rest/push_channel_spec.rb" time="0.000850"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel methods not implemented as push notifications #get_subscriptions raises an unsupported exception" file="./spec/unit/rest/push_channel_spec.rb" time="0.000801"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel methods not implemented as push notifications #subscribe_client_id raises an unsupported exception" file="./spec/unit/rest/push_channel_spec.rb" time="0.000816"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel methods not implemented as push notifications #subscribe_device raises an unsupported exception" file="./spec/unit/rest/push_channel_spec.rb" time="0.000811"></testcase>
<testcase classname="spec.unit.rest.push_channel_spec" name="Ably::Rest::Channel::PushChannel methods not implemented as push notifications #unsubscribe_device raises an unsupported exception" file="./spec/unit/rest/push_channel_spec.rb" time="0.000809"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from another Enum provides a MixedCase const for each provided value" file="./spec/unit/modules/enum_spec.rb" time="0.000716"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum convertor method added to class converts strings" file="./spec/unit/modules/enum_spec.rb" time="0.000752"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum convertor method added to class converts integer index" file="./spec/unit/modules/enum_spec.rb" time="0.000674"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum convertor method added to class converts symbols" file="./spec/unit/modules/enum_spec.rb" time="0.000665"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum class method #to_sym_arr returns all keys as symbols" file="./spec/unit/modules/enum_spec.rb" time="0.000725"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #to_json returns a symbol string key value" file="./spec/unit/modules/enum_spec.rb" time="0.000729"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #to_i returns the Enum index" file="./spec/unit/modules/enum_spec.rb" time="0.000744"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #to_sym returns a snake_case symbol" file="./spec/unit/modules/enum_spec.rb" time="0.000698"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #== compares with a string" file="./spec/unit/modules/enum_spec.rb" time="0.000765"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #== compares with other Objects" file="./spec/unit/modules/enum_spec.rb" time="0.000683"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #== compares with a integer index" file="./spec/unit/modules/enum_spec.rb" time="0.000683"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #== compares with itself" file="./spec/unit/modules/enum_spec.rb" time="0.000710"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #== compares with a symbol" file="./spec/unit/modules/enum_spec.rb" time="0.000687"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum Enum instance #to_s returns ENUMNAME.CamelCase name" file="./spec/unit/modules/enum_spec.rb" time="0.000674"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Hash class provides a MixedCase const for each provided value" file="./spec/unit/modules/enum_spec.rb" time="0.000674"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Hash class #get by invalid integer index raises an exception" file="./spec/unit/modules/enum_spec.rb" time="0.000742"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Hash class #get by string value returns an enum" file="./spec/unit/modules/enum_spec.rb" time="0.000754"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Hash class #get by integer index for 1 returns an enum" file="./spec/unit/modules/enum_spec.rb" time="0.000705"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Hash class #get by integer index for 5 returns an enum" file="./spec/unit/modules/enum_spec.rb" time="0.000706"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class provides a MixedCase const for each provided value" file="./spec/unit/modules/enum_spec.rb" time="0.000710"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class prevents modification" file="./spec/unit/modules/enum_spec.rb" time="0.000790"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class freezes the Enum" file="./spec/unit/modules/enum_spec.rb" time="0.000740"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #to_s returns the Enum name" file="./spec/unit/modules/enum_spec.rb" time="0.000701"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class returns the provided Enum name" file="./spec/unit/modules/enum_spec.rb" time="0.000693"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class behaves like Enumerable" file="./spec/unit/modules/enum_spec.rb" time="0.000709"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #size returns the number of enum items" file="./spec/unit/modules/enum_spec.rb" time="0.000741"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #size has alias #length" file="./spec/unit/modules/enum_spec.rb" time="0.000707"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #each yields each channel" file="./spec/unit/modules/enum_spec.rb" time="0.000710"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #each returns an enumerator" file="./spec/unit/modules/enum_spec.rb" time="0.000726"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #[] is an alias for get" file="./spec/unit/modules/enum_spec.rb" time="0.001075"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #get by enum returns an enum" file="./spec/unit/modules/enum_spec.rb" time="0.000774"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #get by integer index returns an enum" file="./spec/unit/modules/enum_spec.rb" time="0.000738"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #get by invalid type raises an error" file="./spec/unit/modules/enum_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #get by symbol returns an enum" file="./spec/unit/modules/enum_spec.rb" time="0.000722"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum defined Enum from Array class #get by string value returns an enum" file="./spec/unit/modules/enum_spec.rb" time="0.000782"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum two similar Enums with shared symbol values matches symbols when used with a converter method" file="./spec/unit/modules/enum_spec.rb" time="0.000755"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum two similar Enums with shared symbol values provides compatability for the equivalent symbol values" file="./spec/unit/modules/enum_spec.rb" time="0.000733"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum two similar Enums with shared symbol values fails to match when using an incompatible method with a converter method" file="./spec/unit/modules/enum_spec.rb" time="0.000746"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum two similar Enums with shared symbol values does not consider different symbol values the same" file="./spec/unit/modules/enum_spec.rb" time="0.000697"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum convertor method added to instance converts integer index" file="./spec/unit/modules/enum_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum convertor method added to instance converts strings" file="./spec/unit/modules/enum_spec.rb" time="0.000752"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum convertor method added to instance converts symbols" file="./spec/unit/modules/enum_spec.rb" time="0.000714"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum using include? to compare Enum values allows different type comparison 1" file="./spec/unit/modules/enum_spec.rb" time="0.000745"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum using include? to compare Enum values allows different type comparison 2" file="./spec/unit/modules/enum_spec.rb" time="0.000782"><skipped/></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum using include? to compare Enum values allows same type comparison" file="./spec/unit/modules/enum_spec.rb" time="0.000738"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum using include? to compare Enum values #match_any? replacement for include? matches any value in the arguments provided" file="./spec/unit/modules/enum_spec.rb" time="0.000751"></testcase>
<testcase classname="spec.unit.modules.enum_spec" name="Ably::Modules::Enum using include? to compare Enum values #match_any? replacement for include? returns false if there are no matches in any value in the arguments provided" file="./spec/unit/modules/enum_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #href retrieves attribute :href" file="./spec/unit/models/error_info_spec.rb" time="0.000907"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #message retrieves attribute :message" file="./spec/unit/models/error_info_spec.rb" time="0.003939"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/error_info_spec.rb" time="0.000807"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #request_id retrieves attribute :request_id" file="./spec/unit/models/error_info_spec.rb" time="0.000736"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/error_info_spec.rb" time="0.000711"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #cause retrieves attribute :cause" file="./spec/unit/models/error_info_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #code retrieves attribute :code" file="./spec/unit/models/error_info_spec.rb" time="0.000752"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model attributes #status_code retrieves attribute :status_code" file="./spec/unit/models/error_info_spec.rb" time="0.000740"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model is immutable dups options" file="./spec/unit/models/error_info_spec.rb" time="0.000725"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model is immutable prevents changes" file="./spec/unit/models/error_info_spec.rb" time="0.000784"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/error_info_spec.rb" time="0.000873"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/error_info_spec.rb" time="0.000755"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model #== is true when attributes are the same" file="./spec/unit/models/error_info_spec.rb" time="0.000760"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model #== is false when class type differs" file="./spec/unit/models/error_info_spec.rb" time="0.000678"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#TI1, #TI4 behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/error_info_spec.rb" time="0.000895"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#request_id #RSC7c should return request ID" file="./spec/unit/models/error_info_spec.rb" time="0.000736"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#cause #TI1 should return cause attribute" file="./spec/unit/models/error_info_spec.rb" time="0.000696"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo#status #TI1, #TI2 is an alias for #status_code" file="./spec/unit/models/error_info_spec.rb" time="0.000749"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo log entries container help link #TI5 with an error code and an href attribute includes the specified href in the stringified object" file="./spec/unit/models/error_info_spec.rb" time="0.001051"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo log entries container help link #TI5 without an error code does not include the help URL" file="./spec/unit/models/error_info_spec.rb" time="0.000945"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo log entries container help link #TI5 with an error code and a message with a different error URL includes the specified error URL from the message and the error code URL in the stringified object" file="./spec/unit/models/error_info_spec.rb" time="0.001374"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo log entries container help link #TI5 with an error code and a message with the same error URL includes the specified error URL only once in the stringified object" file="./spec/unit/models/error_info_spec.rb" time="0.000871"></testcase>
<testcase classname="spec.unit.models.error_info_spec" name="Ably::Models::ErrorInfo log entries container help link #TI5 with a specified error code includes https://help.ably.io/error/[CODE] in the stringified object" file="./spec/unit/models/error_info_spec.rb" time="0.000942"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#previous (#TH2) is required" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000746"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#previous (#TH2) is an attribute" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000709"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#reason (#TH3) is not required" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000704"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#reason (#TH3) is an attribute" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000694"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange invalid attributes raises an argument error" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000731"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#resumed (#TH4) is false when ommitted" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000677"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#resumed (#TH4) is true when provided" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000664"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#event (#TH5) is not required" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000680"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#event (#TH5) is an attribute" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000717"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#current (#TH1) is an attribute" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000713"></testcase>
<testcase classname="spec.unit.models.channel_state_change_spec" name="Ably::Models::ChannelStateChange#current (#TH1) is required" file="./spec/unit/models/channel_state_change_spec.rb" time="0.000700"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON with ProtocolMessage provides access to ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000908"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON with ProtocolMessage has a ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000871"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON with ProtocolMessage initializes with the JSON" file="./spec/unit/models/message_spec.rb" time="0.000849"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON with ProtocolMessage returns a Message object" file="./spec/unit/models/message_spec.rb" time="0.000838"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON without ProtocolMessage returns a Message object" file="./spec/unit/models/message_spec.rb" time="0.000828"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON without ProtocolMessage raises an exception when accessing ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000866"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON without ProtocolMessage has no ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000813"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with JSON without ProtocolMessage initializes with the JSON" file="./spec/unit/models/message_spec.rb" time="0.000803"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message without ProtocolMessage initializes with the JSON" file="./spec/unit/models/message_spec.rb" time="0.000835"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message without ProtocolMessage has no ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000825"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message without ProtocolMessage raises an exception when accessing ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000858"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message without ProtocolMessage returns a Message object" file="./spec/unit/models/message_spec.rb" time="0.000801"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message with ProtocolMessage has a ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000851"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message with ProtocolMessage provides access to ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.000834"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message with ProtocolMessage initializes with the JSON" file="./spec/unit/models/message_spec.rb" time="0.000855"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Message conversion method with another Message with ProtocolMessage returns a Message object" file="./spec/unit/models/message_spec.rb" time="0.000824"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message part of ProtocolMessage should generate a message ID from the index, serial and connection id" file="./spec/unit/models/message_spec.rb" time="0.001122"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message part of ProtocolMessage should not allow changes to the payload" file="./spec/unit/models/message_spec.rb" time="0.001085"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message part of ProtocolMessage should not modify the data payload" file="./spec/unit/models/message_spec.rb" time="0.001074"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message part of ProtocolMessage with identical message objects recognises the index based on the object ID as opposed to message payload" file="./spec/unit/models/message_spec.rb" time="0.001258"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message part of ProtocolMessage with identical message objects provide a unique ID:index" file="./spec/unit/models/message_spec.rb" time="0.001244"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded_array (#TM3) with no encoding returns an Array of message objects" file="./spec/unit/models/message_spec.rb" time="0.001520"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#size Array (#TO3l8b) should return 24 bytes" file="./spec/unit/models/message_spec.rb" time="0.000952"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#size extras (#TO3l8d) should return 57 bytes" file="./spec/unit/models/message_spec.rb" time="0.000941"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#size nil (#TO3l8e) should return 19 bytes" file="./spec/unit/models/message_spec.rb" time="0.000925"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#size String (#TO3l8a) should return 33 bytes" file="./spec/unit/models/message_spec.rb" time="0.000911"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#size Object (#TO3l8b) should return 38 bytes" file="./spec/unit/models/message_spec.rb" time="0.000936"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#id (#RSL1j) #as_json exposes the #id attribute" file="./spec/unit/models/message_spec.rb" time="0.000909"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#id (#RSL1j) exposes the #id attribute" file="./spec/unit/models/message_spec.rb" time="0.000872"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message Java naming converts the attribute to ruby symbol naming convention" file="./spec/unit/models/message_spec.rb" time="0.000899"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#to_json with valid data converts the attribute back to Java mixedCase notation using string keys" file="./spec/unit/models/message_spec.rb" time="0.000983"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#to_json with binary data adds Base64 encoding" file="./spec/unit/models/message_spec.rb" time="0.001050"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#to_json with binary data encodes as Base64 so that it can be converted to UTF-8 automatically by JSON#dump" file="./spec/unit/models/message_spec.rb" time="0.000983"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as UTF_8 string remains as UTF-8" file="./spec/unit/models/message_spec.rb" time="0.000979"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as UTF_8 string is permitted" file="./spec/unit/models/message_spec.rb" time="0.000933"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as Integer raises an argument error" file="./spec/unit/models/message_spec.rb" time="0.000974"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/models/message_spec.rb" time="0.001002"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/models/message_spec.rb" time="0.003993"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/models/message_spec.rb" time="0.027598"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/models/message_spec.rb" time="0.001397"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :encoding as Nil is permitted" file="./spec/unit/models/message_spec.rb" time="0.001379"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/models/message_spec.rb" time="0.001348"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/models/message_spec.rb" time="0.001140"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as Nil is permitted" file="./spec/unit/models/message_spec.rb" time="0.000865"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as UTF_8 string is permitted" file="./spec/unit/models/message_spec.rb" time="0.000869"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as UTF_8 string remains as UTF-8" file="./spec/unit/models/message_spec.rb" time="0.000852"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as Integer raises an argument error" file="./spec/unit/models/message_spec.rb" time="0.000917"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/models/message_spec.rb" time="0.000880"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :client_id as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/models/message_spec.rb" time="0.000866"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/models/message_spec.rb" time="0.000915"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/models/message_spec.rb" time="0.000923"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/models/message_spec.rb" time="0.000946"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/models/message_spec.rb" time="0.000898"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as UTF_8 string is permitted" file="./spec/unit/models/message_spec.rb" time="0.000941"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as UTF_8 string remains as UTF-8" file="./spec/unit/models/message_spec.rb" time="0.000901"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as Nil is permitted" file="./spec/unit/models/message_spec.rb" time="0.000878"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message initialized with :name as Integer raises an argument error" file="./spec/unit/models/message_spec.rb" time="0.000851"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#connection_id attribute when this model has no connectionId attribute with a protocol message with a connectionId uses the model value" file="./spec/unit/models/message_spec.rb" time="0.000955"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#connection_id attribute when this model has no connectionId attribute and no protocol message uses the model value" file="./spec/unit/models/message_spec.rb" time="0.000862"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#connection_id attribute when this model has a connectionId attribute but no protocol message uses the model value" file="./spec/unit/models/message_spec.rb" time="0.000844"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#connection_id attribute when this model has a connectionId attribute with a protocol message with a different connectionId uses the model value" file="./spec/unit/models/message_spec.rb" time="0.000877"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded (#TM3) with a Cipher encoding returns a message object with the residual incompatible transforms left in the encoding property" file="./spec/unit/models/message_spec.rb" time="0.001873"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded (#TM3) with a custom encoding returns a message object with the residual incompatible transforms left in the encoding property" file="./spec/unit/models/message_spec.rb" time="0.001222"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded (#TM3) with invalid Cipher encoding without a block raises an exception" file="./spec/unit/models/message_spec.rb" time="0.001516"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded (#TM3) with invalid Cipher encoding with a block calls the block with the exception" file="./spec/unit/models/message_spec.rb" time="0.001342"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded (#TM3) with no encoding returns a message object" file="./spec/unit/models/message_spec.rb" time="0.001133"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded (#TM3) with no encoding with a block does not call the block" file="./spec/unit/models/message_spec.rb" time="0.001091"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#from_encoded (#TM3) with an encoding returns a message object" file="./spec/unit/models/message_spec.rb" time="0.001216"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#timestamp retrieves attribute :timestamp as Time object from ProtocolMessage" file="./spec/unit/models/message_spec.rb" time="0.001001"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model #== is false when class type differs" file="./spec/unit/models/message_spec.rb" time="0.000932"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model #== is true when attributes are the same" file="./spec/unit/models/message_spec.rb" time="0.000991"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/message_spec.rb" time="0.000974"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model attributes #encoding retrieves attribute :encoding" file="./spec/unit/models/message_spec.rb" time="0.000921"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/message_spec.rb" time="0.000953"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model attributes #id retrieves attribute :id" file="./spec/unit/models/message_spec.rb" time="0.000885"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model attributes #name retrieves attribute :name" file="./spec/unit/models/message_spec.rb" time="0.000893"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model attributes #data retrieves attribute :data" file="./spec/unit/models/message_spec.rb" time="0.000877"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model attributes #client_id retrieves attribute :client_id" file="./spec/unit/models/message_spec.rb" time="0.000924"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/message_spec.rb" time="0.000893"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model is immutable dups options" file="./spec/unit/models/message_spec.rb" time="0.000918"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model is immutable prevents changes" file="./spec/unit/models/message_spec.rb" time="0.000969"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/message_spec.rb" time="0.001018"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message serialization of the Message object (#RSL1j) behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/message_spec.rb" time="0.001030"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#delta_extras (TM2i) when delta should return vcdiff format" file="./spec/unit/models/message_spec.rb" time="0.000914"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#delta_extras (TM2i) when delta should return 1234-1234-5678-9009 message id" file="./spec/unit/models/message_spec.rb" time="0.000890"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#delta_extras (TM2i) when no delta should return nil" file="./spec/unit/models/message_spec.rb" time="0.000889"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message from REST request with embedded fields without protocol message #timestamp uses embedded timestamp" file="./spec/unit/models/message_spec.rb" time="0.000939"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message from REST request with embedded fields without protocol message #id uses embedded ID" file="./spec/unit/models/message_spec.rb" time="0.000902"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message from REST request with embedded fields with protocol message #id prefers embedded ID" file="./spec/unit/models/message_spec.rb" time="0.000991"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message from REST request with embedded fields with protocol message #timestamp prefers embedded timestamp" file="./spec/unit/models/message_spec.rb" time="0.000942"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#extras (#TM2i) when a Json Array contains a Json Array object" file="./spec/unit/models/message_spec.rb" time="0.000906"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#extras (#TM2i) when a string raises an exception" file="./spec/unit/models/message_spec.rb" time="0.000999"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#extras (#TM2i) when missing is nil" file="./spec/unit/models/message_spec.rb" time="0.000923"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#extras (#TM2i) when a Hash contains a Hash Json object" file="./spec/unit/models/message_spec.rb" time="0.000893"></testcase>
<testcase classname="spec.unit.models.message_spec" name="Ably::Models::Message#protocol_message_index (#RTL21) should return correct protocol_message_index" file="./spec/unit/models/message_spec.rb" time="0.001136"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::PresenceMessage behaves like a safe Deferrable #callback adds a callback that is called when #succed is called" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001267"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::PresenceMessage behaves like a safe Deferrable #callback catches exceptions in the callback and logs the error to the logger" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001744"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::PresenceMessage behaves like a safe Deferrable #succeed calls the callbacks defined with #callback, but not the ones added for #errback" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001200"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::PresenceMessage behaves like a safe Deferrable #errback adds a callback that is called when #fail is called" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001118"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::PresenceMessage behaves like a safe Deferrable #errback catches exceptions in the callback and logs the error to the logger" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001673"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::PresenceMessage behaves like a safe Deferrable #fail calls the callbacks defined with #errback, but not the ones added for success #callback" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.004216"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option with nil value is permitted" file="./spec/unit/auth_spec.rb" time="0.000860"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option as UTF_8 string remains as UTF-8" file="./spec/unit/auth_spec.rb" time="0.000776"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option as UTF_8 string is permitted" file="./spec/unit/auth_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/auth_spec.rb" time="0.000742"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/auth_spec.rb" time="0.000791"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option as Integer raises an argument error" file="./spec/unit/auth_spec.rb" time="0.000840"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/auth_spec.rb" time="0.000775"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth client_id option as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/auth_spec.rb" time="0.000739"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth defaults should have no default TTL" file="./spec/unit/auth_spec.rb" time="0.000663"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth defaults should have no default capability" file="./spec/unit/auth_spec.rb" time="0.000709"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails camelCase constructor attributes are generated when the object is serialised to JSON" file="./spec/unit/models/device_push_details_spec.rb" time="0.000835"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails camelCase constructor attributes are rubyfied and exposed as underscore case" file="./spec/unit/models/device_push_details_spec.rb" time="0.000789"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#state and #state= rejects non string or nil values" file="./spec/unit/models/device_push_details_spec.rb" time="0.000760"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#state and #state= setter accepts nil" file="./spec/unit/models/device_push_details_spec.rb" time="0.000799"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#state and #state= setter accepts a string value and getter returns the new value" file="./spec/unit/models/device_push_details_spec.rb" time="0.000760"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#error_reason and #error_reason= rejects non Hash, ErrorInfo or nil values" file="./spec/unit/models/device_push_details_spec.rb" time="0.000740"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#error_reason and #error_reason= setter accepts nil values" file="./spec/unit/models/device_push_details_spec.rb" time="0.000833"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#error_reason and #error_reason= setter accepts a ErrorInfo object and getter returns a ErrorInfo object" file="./spec/unit/models/device_push_details_spec.rb" time="0.000904"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#error_reason and #error_reason= setter accepts a Hash value and getter returns a ErrorInfo object" file="./spec/unit/models/device_push_details_spec.rb" time="0.000904"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#recipient and #recipient= setter accepts nil but always returns an empty hash" file="./spec/unit/models/device_push_details_spec.rb" time="0.000823"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#recipient and #recipient= setter accepts a Hash value and getter returns the new value" file="./spec/unit/models/device_push_details_spec.rb" time="0.000803"></testcase>
<testcase classname="spec.unit.models.device_push_details_spec" name="Ably::Models::DevicePushDetails#recipient and #recipient= rejects non Hash or nil values" file="./spec/unit/models/device_push_details_spec.rb" time="0.000723"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer delegators delegates :auth_options to .auth" file="./spec/unit/realtime/client_spec.rb" time="0.001525"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer delegators delegates :client_id to .auth" file="./spec/unit/realtime/client_spec.rb" time="0.001371"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments tls defaults to TLS" file="./spec/unit/realtime/client_spec.rb" time="0.001083"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments tls set to false uses plain text" file="./spec/unit/realtime/client_spec.rb" time="0.001041"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments tls set to false uses HTTP" file="./spec/unit/realtime/client_spec.rb" time="0.001074"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments environment when set without custom fallback hosts configured sets the environment attribute" file="./spec/unit/realtime/client_spec.rb" time="0.001005"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments environment when set without custom fallback hosts configured uses the default fallback hosts (#TBC, see https://github.com/ably/wiki/issues/361)" file="./spec/unit/realtime/client_spec.rb" time="0.000951"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments environment when set with custom fallback hosts configured uses the custom provided fallback hosts (#RSC15a)" file="./spec/unit/realtime/client_spec.rb" time="0.000959"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments environment when set with custom fallback hosts configured sets the environment attribute" file="./spec/unit/realtime/client_spec.rb" time="0.000922"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments environment when set with fallback_hosts_use_default uses the production default fallback hosts (#RTN17b)" file="./spec/unit/realtime/client_spec.rb" time="0.001007"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments environment when set with fallback_hosts_use_default sets the environment attribute" file="./spec/unit/realtime/client_spec.rb" time="0.000931"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with a string token key instead of options hash sets the token" file="./spec/unit/realtime/client_spec.rb" time="0.001718"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments endpoint defaults to production" file="./spec/unit/realtime/client_spec.rb" time="0.001101"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments endpoint with rest_host option uses an alternate endpoint for REST clients" file="./spec/unit/realtime/client_spec.rb" time="0.001066"><skipped/></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments endpoint with tls_port option and a TLS connection uses the custom port for TLS requests" file="./spec/unit/realtime/client_spec.rb" time="0.001123"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments endpoint with realtime_host option uses an alternate endpoint for Realtime clients" file="./spec/unit/realtime/client_spec.rb" time="0.001093"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments endpoint with port option and non-TLS connections uses the custom port for non-TLS requests" file="./spec/unit/realtime/client_spec.rb" time="0.001095"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments endpoint with environment option uses an alternate endpoint" file="./spec/unit/realtime/client_spec.rb" time="0.001077"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments custom TLS port when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/realtime/client_spec.rb" time="0.001032"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with token_params configures default_token_params" file="./spec/unit/realtime/client_spec.rb" time="0.001538"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with token sets the token" file="./spec/unit/realtime/client_spec.rb" time="0.001455"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments key_name and key_secret constructs a key" file="./spec/unit/realtime/client_spec.rb" time="0.000964"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments realtime_host when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/realtime/client_spec.rb" time="0.000965"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments realtime_host when set without custom fallback hosts configured sets the realtime_host option" file="./spec/unit/realtime/client_spec.rb" time="0.000890"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments rest_host when set with environment and without custom fallback hosts configured sets the custom_host attribute" file="./spec/unit/realtime/client_spec.rb" time="0.000925"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments rest_host when set with environment and without custom fallback hosts configured sets the environment attribute" file="./spec/unit/realtime/client_spec.rb" time="0.000982"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments rest_host when set with environment and without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/realtime/client_spec.rb" time="0.000992"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments rest_host when set with custom fallback hosts configured sets the custom_host attribute" file="./spec/unit/realtime/client_spec.rb" time="1.911845"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments rest_host when set with custom fallback hosts configured has no default fallback hosts" file="./spec/unit/realtime/client_spec.rb" time="0.001957"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments rest_host when set without custom fallback hosts configured sets the custom_host attribute" file="./spec/unit/realtime/client_spec.rb" time="0.001676"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments rest_host when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/realtime/client_spec.rb" time="0.001452"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments custom port when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/realtime/client_spec.rb" time="0.001117"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments key only connects to the Ably service" file="./spec/unit/realtime/client_spec.rb" time="0.001018"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments key only uses basic auth" file="./spec/unit/realtime/client_spec.rb" time="0.001000"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with token_details sets the token" file="./spec/unit/realtime/client_spec.rb" time="0.001668"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with a string key instead of options hash sets the key" file="./spec/unit/realtime/client_spec.rb" time="0.001106"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with a string key instead of options hash uses basic auth" file="./spec/unit/realtime/client_spec.rb" time="0.001066"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with a string key instead of options hash sets the key_secret" file="./spec/unit/realtime/client_spec.rb" time="0.001252"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments with a string key instead of options hash sets the key_name" file="./spec/unit/realtime/client_spec.rb" time="0.001086"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments logger default specifies Logger::WARN log level" file="./spec/unit/realtime/client_spec.rb" time="0.001161"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments logger default uses Ruby Logger" file="./spec/unit/realtime/client_spec.rb" time="0.001162"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments logger with log_level :none silences all logging with a NilLogger" file="./spec/unit/realtime/client_spec.rb" time="0.001117"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments logger with custom logger and log_level sets the custom log level" file="./spec/unit/realtime/client_spec.rb" time="0.001175"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with valid arguments logger with custom logger and log_level uses the custom logger" file="./spec/unit/realtime/client_spec.rb" time="0.001185"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with invalid arguments nil raises an exception" file="./spec/unit/realtime/client_spec.rb" time="0.000845"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with invalid arguments key: &quot;invalid&quot; raises an exception" file="./spec/unit/realtime/client_spec.rb" time="0.000929"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with invalid arguments key and key_name raises an exception" file="./spec/unit/realtime/client_spec.rb" time="0.000861"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with invalid arguments key and key_secret raises an exception" file="./spec/unit/realtime/client_spec.rb" time="0.000869"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with invalid arguments key: &quot;invalid:asdad&quot; raises an exception" file="./spec/unit/realtime/client_spec.rb" time="0.000901"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client behaves like a client initializer with invalid arguments empty hash raises an exception" file="./spec/unit/realtime/client_spec.rb" time="0.004945"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client delegation to the REST Client passes on the options to the initializer" file="./spec/unit/realtime/client_spec.rb" time="0.001686"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client delegation to the REST Client for attribute #custom_host" file="./spec/unit/realtime/client_spec.rb" time="0.001167"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client delegation to the REST Client for attribute #environment" file="./spec/unit/realtime/client_spec.rb" time="0.001110"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client delegation to the REST Client for attribute #log_level" file="./spec/unit/realtime/client_spec.rb" time="0.001166"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client delegation to the REST Client for attribute #use_tls?" file="./spec/unit/realtime/client_spec.rb" time="0.001098"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client when :transport_params option is passed converts options to strings" file="./spec/unit/realtime/client_spec.rb" time="0.000969"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client push #device is not supported and raises an exception" file="./spec/unit/realtime/client_spec.rb" time="0.000953"></testcase>
<testcase classname="spec.unit.realtime.client_spec" name="Ably::Realtime::Client push #push returns a Push object" file="./spec/unit/realtime/client_spec.rb" time="0.000946"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as frozen UTF_8 string is permitted" file="./spec/unit/rest/channel_spec.rb" time="0.002206"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as frozen UTF_8 string remains as UTF-8" file="./spec/unit/rest/channel_spec.rb" time="0.001733"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as UTF_8 string is permitted" file="./spec/unit/rest/channel_spec.rb" time="0.001765"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as UTF_8 string remains as UTF-8" file="./spec/unit/rest/channel_spec.rb" time="0.001667"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as Integer raises an argument error" file="./spec/unit/rest/channel_spec.rb" time="0.001360"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/rest/channel_spec.rb" time="0.001020"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/rest/channel_spec.rb" time="0.001015"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as Nil raises an argument error" file="./spec/unit/rest/channel_spec.rb" time="0.000949"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/rest/channel_spec.rb" time="0.001029"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#initializer as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/rest/channel_spec.rb" time="0.000987"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument as frozen UTF_8 string is permitted" file="./spec/unit/rest/channel_spec.rb" time="0.001496"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument as ASCII_8BIT string is permitted" file="./spec/unit/rest/channel_spec.rb" time="0.001504"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument as Integer raises an argument error" file="./spec/unit/rest/channel_spec.rb" time="0.001070"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument as UTF_8 string is permitted" file="./spec/unit/rest/channel_spec.rb" time="0.001486"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument as SHIFT_JIS string is permitted" file="./spec/unit/rest/channel_spec.rb" time="0.001454"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument max message size exceeded when max_message_size is 10 bytes and a message size is 2 bytes should send a message" file="./spec/unit/rest/channel_spec.rb" time="0.001447"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument max message size exceeded when max_message_size is 10 bytes and a message size is 11 bytes should raise Ably::Exceptions::MaxMessageSizeExceeded" file="./spec/unit/rest/channel_spec.rb" time="0.001316"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument max message size exceeded when max_message_size is 65536 bytes and a message size is 65537 bytes should raise Ably::Exceptions::MaxMessageSizeExceeded" file="./spec/unit/rest/channel_spec.rb" time="0.001317"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument max message size exceeded when max_message_size is 65536 bytes and a message size is 10 bytes should send a message" file="./spec/unit/rest/channel_spec.rb" time="0.001504"></testcase>
<testcase classname="spec.unit.rest.channel_spec" name="Ably::Rest::Channel#publish name argument max message size exceeded when max_message_size is nil and a message size is 65537 bytes should raise Ably::Exceptions::MaxMessageSizeExceeded" file="./spec/unit/rest/channel_spec.rb" time="0.001337"></testcase>
<testcase classname="spec.unit.models.delta_extras_spec" name="Ably::Models::DeltaExtras should have `format` attribute" file="./spec/unit/models/delta_extras_spec.rb" time="0.000769"></testcase>
<testcase classname="spec.unit.models.delta_extras_spec" name="Ably::Models::DeltaExtras should have `from` attribute" file="./spec/unit/models/delta_extras_spec.rb" time="0.000728"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block raises an Exception calls the errback block of the SafeDeferrable" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.390316"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block raises an Exception does not call the callback block of the SafeDeferrable" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.202610"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block raises an Exception does not call the provided block" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.203246"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block returns result does not block EventMachine" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.103497"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block returns result calls the provided block with result when provided" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.102853"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block returns result does not call the errback" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.304028"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block returns result returns a SafeDeferrable that catches and logs exceptions in the provided callbacks" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.002664"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block returns result catches exceptions in the provided block and logs them to logger" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.103666"></testcase>
<testcase classname="spec.unit.modules.async_wrapper_spec" name="Ably::Modules::AsyncWrapper#async_wrap blocking block returns result returns a SafeDeferrable that calls the callback block" file="./spec/unit/modules/async_wrapper_spec.rb" time="0.103817"></testcase>
<testcase classname="spec.unit.models.message_encoders.utf8_spec" name="Ably::Models::MessageEncoders::Utf8#decode message with another payload leaves the message data intact" file="./spec/unit/models/message_encoders/utf8_spec.rb" time="0.001791"></testcase>
<testcase classname="spec.unit.models.message_encoders.utf8_spec" name="Ably::Models::MessageEncoders::Utf8#decode message with another payload leaves the encoding intact" file="./spec/unit/models/message_encoders/utf8_spec.rb" time="0.001333"></testcase>
<testcase classname="spec.unit.models.message_encoders.utf8_spec" name="Ably::Models::MessageEncoders::Utf8#decode message with utf8 payload sets the encoding" file="./spec/unit/models/message_encoders/utf8_spec.rb" time="0.000894"></testcase>
<testcase classname="spec.unit.models.message_encoders.utf8_spec" name="Ably::Models::MessageEncoders::Utf8#decode message with utf8 payload strips the encoding" file="./spec/unit/models/message_encoders/utf8_spec.rb" time="0.000928"></testcase>
<testcase classname="spec.unit.models.message_encoders.utf8_spec" name="Ably::Models::MessageEncoders::Utf8#decode message with utf8 payload before other payloads strips the encoding" file="./spec/unit/models/message_encoders/utf8_spec.rb" time="0.004721"></testcase>
<testcase classname="spec.unit.models.message_encoders.utf8_spec" name="Ably::Models::MessageEncoders::Utf8#decode message with utf8 payload before other payloads sets the encoding" file="./spec/unit/models/message_encoders/utf8_spec.rb" time="0.000826"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #unsubscribe with a non-matching action argument has no effect" file="./spec/unit/realtime/presence_spec.rb" time="0.001600"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #unsubscribe with a single action argument unsubscribes the provided block with the matching action" file="./spec/unit/realtime/presence_spec.rb" time="0.001403"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #unsubscribe with no block argument unsubscribes all blocks for the action argument" file="./spec/unit/realtime/presence_spec.rb" time="0.001384"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #unsubscribe with no action specified unsubscribes that block from all events" file="./spec/unit/realtime/presence_spec.rb" time="0.001390"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #unsubscribe with multiple action arguments unsubscribes each of those matching actions with the provided block" file="./spec/unit/realtime/presence_spec.rb" time="0.001346"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #subscribe with a multiple action arguments subscribes that block to all of those actions" file="./spec/unit/realtime/presence_spec.rb" time="0.002096"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #subscribe with no action specified subscribes the provided block to all action" file="./spec/unit/realtime/presence_spec.rb" time="0.001331"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #subscribe with a single action argument subscribes that block to matching actions" file="./spec/unit/realtime/presence_spec.rb" time="0.001344"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #subscribe without a block raises an invalid ArgumentError" file="./spec/unit/realtime/presence_spec.rb" time="0.000950"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence subscriptions #subscribe with a multiple duplicate action arguments subscribes that block to all of those unique actions once" file="./spec/unit/realtime/presence_spec.rb" time="0.001323"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence msgbus supports messages" file="./spec/unit/realtime/presence_spec.rb" time="0.001411"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence msgbus fail with unacceptable STATE event names" file="./spec/unit/realtime/presence_spec.rb" time="0.001002"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence callbacks fail with unacceptable STATE event names" file="./spec/unit/realtime/presence_spec.rb" time="0.000961"></testcase>
<testcase classname="spec.unit.realtime.presence_spec" name="Ably::Realtime::Presence callbacks are supported for valid STATE events" file="./spec/unit/realtime/presence_spec.rb" time="0.000939"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#to_json with binary data encodes as Base64 so that it can be converted to UTF-8 automatically by JSON#dump" file="./spec/unit/models/presence_message_spec.rb" time="0.001134"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#to_json with binary data adds Base64 encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.001027"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#to_json with invalid data raises an exception" file="./spec/unit/models/presence_message_spec.rb" time="0.001018"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#to_json with valid data converts the attribute back to Java mixedCase notation using string keys" file="./spec/unit/models/presence_message_spec.rb" time="0.001034"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage Java naming converts the attribute to ruby symbol naming convention" file="./spec/unit/models/presence_message_spec.rb" time="0.000946"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage from REST request with embedded fields with protocol message #id prefers embedded ID" file="./spec/unit/models/presence_message_spec.rb" time="0.000864"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage from REST request with embedded fields with protocol message #timestamp prefers embedded timestamp" file="./spec/unit/models/presence_message_spec.rb" time="0.000893"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage from REST request with embedded fields without protocol message #timestamp uses embedded timestamp" file="./spec/unit/models/presence_message_spec.rb" time="0.000910"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage from REST request with embedded fields without protocol message #id uses embedded ID" file="./spec/unit/models/presence_message_spec.rb" time="0.000845"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded (#TP4) with a custom encoding returns a presence message object with the residual incompatible transforms left in the encoding property" file="./spec/unit/models/presence_message_spec.rb" time="0.001259"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded (#TP4) with invalid Cipher encoding without a block raises an exception" file="./spec/unit/models/presence_message_spec.rb" time="0.001513"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded (#TP4) with invalid Cipher encoding with a block calls the block with the exception" file="./spec/unit/models/presence_message_spec.rb" time="0.001389"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded (#TP4) with an encoding returns a presence message object" file="./spec/unit/models/presence_message_spec.rb" time="0.001235"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded (#TP4) with a Cipher encoding returns a presence message object with the residual incompatible transforms left in the encoding property" file="./spec/unit/models/presence_message_spec.rb" time="0.001833"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded (#TP4) with no encoding returns a presence message object" file="./spec/unit/models/presence_message_spec.rb" time="0.001161"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded (#TP4) with no encoding with a block does not call the block" file="./spec/unit/models/presence_message_spec.rb" time="0.001076"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#size Object (#TO3l8b) should return 32 bytes" file="./spec/unit/models/presence_message_spec.rb" time="0.001109"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#size nil (#TO3l8e) should return 1 bytes" file="./spec/unit/models/presence_message_spec.rb" time="0.000960"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#size Array (#TO3l8b) should return 18 bytes" file="./spec/unit/models/presence_message_spec.rb" time="0.000965"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#size extras (#TO3l8d) should return 51 bytes" file="./spec/unit/models/presence_message_spec.rb" time="0.001014"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#size String (#TO3l8a) should return 20 bytes" file="./spec/unit/models/presence_message_spec.rb" time="0.000952"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#from_encoded_array (#TP4) with no encoding returns an Array of presence message objects" file="./spec/unit/models/presence_message_spec.rb" time="0.001526"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage part of ProtocolMessage should generate a message ID from the index, serial and connection id" file="./spec/unit/models/presence_message_spec.rb" time="0.001374"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage part of ProtocolMessage should not modify the data payload" file="./spec/unit/models/presence_message_spec.rb" time="0.001158"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#shallow_clone with new attributes passed in to the method creates a duplicate of the message without any ProtocolMessage dependency" file="./spec/unit/models/presence_message_spec.rb" time="0.001421"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#shallow_clone with new attributes passed in to the method with mixing of cases resolves case issues and can use camelCase or snake_case" file="./spec/unit/models/presence_message_spec.rb" time="0.002187"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#shallow_clone with new attributes passed in to the method with an invalid ProtocolMessage (missing an ID) allows an ID to be passed in to the shallow clone that takes precedence" file="./spec/unit/models/presence_message_spec.rb" time="0.001350"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#shallow_clone with inherited attributes from ProtocolMessage creates a duplicate of the message without any ProtocolMessage dependency" file="./spec/unit/models/presence_message_spec.rb" time="0.001621"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#shallow_clone with embedded attributes for all fields creates a duplicate of the message without any ProtocolMessage dependency" file="./spec/unit/models/presence_message_spec.rb" time="0.001503"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#member_key attribute is string in format connection_id:client_id" file="./spec/unit/models/presence_message_spec.rb" time="0.001002"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#member_key attribute with a single connection and different client_ids is unique" file="./spec/unit/models/presence_message_spec.rb" time="0.001110"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#member_key attribute with the same client id across multiple connections is unique" file="./spec/unit/models/presence_message_spec.rb" time="0.001141"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/presence_message_spec.rb" time="0.004355"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model attributes #data retrieves attribute :data" file="./spec/unit/models/presence_message_spec.rb" time="0.001005"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/presence_message_spec.rb" time="0.000940"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model attributes #id retrieves attribute :id" file="./spec/unit/models/presence_message_spec.rb" time="0.000943"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model attributes #encoding retrieves attribute :encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.000932"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model attributes #client_id retrieves attribute :client_id" file="./spec/unit/models/presence_message_spec.rb" time="0.000956"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model #== is true when attributes are the same" file="./spec/unit/models/presence_message_spec.rb" time="0.001097"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/presence_message_spec.rb" time="0.001079"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model #== is false when class type differs" file="./spec/unit/models/presence_message_spec.rb" time="0.000929"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/presence_message_spec.rb" time="0.001058"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model is immutable dups options" file="./spec/unit/models/presence_message_spec.rb" time="0.000954"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model is immutable prevents changes" file="./spec/unit/models/presence_message_spec.rb" time="0.000992"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/presence_message_spec.rb" time="0.001074"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#connection_id attribute when this model has a connectionId attribute with a protocol message with a different connectionId uses the model value" file="./spec/unit/models/presence_message_spec.rb" time="0.000945"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#connection_id attribute when this model has a connectionId attribute but no protocol message uses the model value" file="./spec/unit/models/presence_message_spec.rb" time="0.000910"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#connection_id attribute when this model has no connectionId attribute with a protocol message with a connectionId uses the model value" file="./spec/unit/models/presence_message_spec.rb" time="0.001023"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#connection_id attribute when this model has no connectionId attribute and no protocol message uses the model value" file="./spec/unit/models/presence_message_spec.rb" time="0.000888"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage#timestamp retrieves attribute :timestamp as a Time object from ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.001065"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage with action enter provides action as an Enum" file="./spec/unit/models/presence_message_spec.rb" time="0.000950"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage with action absent provides action as an Enum" file="./spec/unit/models/presence_message_spec.rb" time="0.000912"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.000934"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000902"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as Integer raises an argument error" file="./spec/unit/models/presence_message_spec.rb" time="0.000951"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as UTF_8 string is permitted" file="./spec/unit/models/presence_message_spec.rb" time="0.000926"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as UTF_8 string remains as UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000898"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as Nil is permitted" file="./spec/unit/models/presence_message_spec.rb" time="0.000872"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.000958"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :connection_id as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000925"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.000942"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000932"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000962"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.000968"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as Integer raises an argument error" file="./spec/unit/models/presence_message_spec.rb" time="0.000936"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as Nil is permitted" file="./spec/unit/models/presence_message_spec.rb" time="0.000929"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as UTF_8 string remains as UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000946"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :client_id as UTF_8 string is permitted" file="./spec/unit/models/presence_message_spec.rb" time="0.000936"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000957"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.000961"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/models/presence_message_spec.rb" time="0.000936"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000958"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as Integer raises an argument error" file="./spec/unit/models/presence_message_spec.rb" time="0.000997"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as Nil is permitted" file="./spec/unit/models/presence_message_spec.rb" time="0.000931"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as UTF_8 string remains as UTF-8" file="./spec/unit/models/presence_message_spec.rb" time="0.000989"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage initialized with :encoding as UTF_8 string is permitted" file="./spec/unit/models/presence_message_spec.rb" time="0.000940"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage with ProtocolMessage returns a PresenceMessage object" file="./spec/unit/models/presence_message_spec.rb" time="0.000952"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage with ProtocolMessage has a ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.000924"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage with ProtocolMessage provides access to ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.000866"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage with ProtocolMessage initializes with the JSON" file="./spec/unit/models/presence_message_spec.rb" time="0.000891"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage without ProtocolMessage has no ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.000890"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage without ProtocolMessage returns a PresenceMessage object" file="./spec/unit/models/presence_message_spec.rb" time="0.000848"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage without ProtocolMessage initializes with the JSON" file="./spec/unit/models/presence_message_spec.rb" time="0.000875"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with another PresenceMessage without ProtocolMessage raises an exception when accessing ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.000879"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON without ProtocolMessage has no ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.000927"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON without ProtocolMessage returns a PresenceMessage object" file="./spec/unit/models/presence_message_spec.rb" time="0.000857"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON without ProtocolMessage raises an exception when accessing ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.000925"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON without ProtocolMessage initializes with the JSON" file="./spec/unit/models/presence_message_spec.rb" time="0.000891"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON with ProtocolMessage provides access to ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.001031"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON with ProtocolMessage returns a PresenceMessage object" file="./spec/unit/models/presence_message_spec.rb" time="0.000975"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON with ProtocolMessage has a ProtocolMessage" file="./spec/unit/models/presence_message_spec.rb" time="0.000963"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage PresenceMessage conversion method with JSON with ProtocolMessage initializes with the JSON" file="./spec/unit/models/presence_message_spec.rb" time="0.000986"></testcase>
<testcase classname="spec.unit.models.presence_message_spec" name="Ably::Models::PresenceMessage without action raises an exception when accessed" file="./spec/unit/models/presence_message_spec.rb" time="0.004300"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger uses the language provided Logger by default" file="./spec/unit/logger_spec.rb" time="0.000513"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals delegates to the default Logger object" file="./spec/unit/logger_spec.rb" time="0.000719"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals formatter severity argument can be an Integer" file="./spec/unit/logger_spec.rb" time="0.000509"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals formatter severity argument can be a string" file="./spec/unit/logger_spec.rb" time="0.000484"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals formatter with Realtime client with Realtime connected client formats logs with a client ID" file="./spec/unit/logger_spec.rb" time="0.001235"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals formatter with Realtime client with Realtime disconnected client formats logs with an empty client ID" file="./spec/unit/logger_spec.rb" time="0.001080"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals formatter with REST client formats logs without a client ID" file="./spec/unit/logger_spec.rb" time="0.000547"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals formatter when info -&gt; fatal uses long time format" file="./spec/unit/logger_spec.rb" time="0.000501"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger internals formatter when debugging uses short time format" file="./spec/unit/logger_spec.rb" time="0.000491"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger with blocks does not call the block unless the log level is met" file="./spec/unit/logger_spec.rb" time="0.000572"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger with blocks with an exception in the logger block catches the error and continues" file="./spec/unit/logger_spec.rb" time="0.000825"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger with a custom Logger with an invalid interface raises an exception" file="./spec/unit/logger_spec.rb" time="0.000483"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger with a custom Logger with a valid interface delegates log messages to logger" file="./spec/unit/logger_spec.rb" time="0.000636"></testcase>
<testcase classname="spec.unit.logger_spec" name="Ably::Logger with a custom Logger with a valid interface is used" file="./spec/unit/logger_spec.rb" time="0.000471"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_time_from_epoch with Time leaves intact" file="./spec/unit/modules/conversions_spec.rb" time="0.000845"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_time_from_epoch with numeric converts to Time from milliseconds by default" file="./spec/unit/modules/conversions_spec.rb" time="0.000780"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_time_from_epoch with numeric converts to Time from seconds" file="./spec/unit/modules/conversions_spec.rb" time="0.000772"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_time_from_epoch with any other object raises an exception" file="./spec/unit/modules/conversions_spec.rb" time="0.000791"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_since_epoch with numeric accepts integers" file="./spec/unit/modules/conversions_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_since_epoch with numeric converts to integer" file="./spec/unit/modules/conversions_spec.rb" time="0.000753"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_since_epoch with time converts to milliseconds by default" file="./spec/unit/modules/conversions_spec.rb" time="0.000776"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_since_epoch with time converted to seconds" file="./spec/unit/modules/conversions_spec.rb" time="0.000740"></testcase>
<testcase classname="spec.unit.modules.conversions_spec" name="Ably::Modules::Conversions#as_since_epoch with any other object raises an exception" file="./spec/unit/modules/conversions_spec.rb" time="0.000759"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails attributes #connection_state_ttl (#CD2f) retrieves attribute :connection_state_ttl and converts it from ms to s" file="./spec/unit/models/connection_details_spec.rb" time="0.000998"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails attributes #max_idle_interval (#CD2h) retrieves attribute :max_idle_interval and converts it from ms to s" file="./spec/unit/models/connection_details_spec.rb" time="0.000969"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails ConnectionDetails conversion methods with a ConnectionDetails object returns the ConnectionDetails object" file="./spec/unit/models/connection_details_spec.rb" time="0.000993"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails ConnectionDetails conversion methods with a JSON object returns a new ConnectionDetails object from the JSON" file="./spec/unit/models/connection_details_spec.rb" time="0.000993"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model #== is false when class type differs" file="./spec/unit/models/connection_details_spec.rb" time="0.000952"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model #== is true when attributes are the same" file="./spec/unit/models/connection_details_spec.rb" time="0.001287"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/connection_details_spec.rb" time="0.001302"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/connection_details_spec.rb" time="0.001100"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model is immutable prevents changes" file="./spec/unit/models/connection_details_spec.rb" time="0.001048"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model is immutable dups options" file="./spec/unit/models/connection_details_spec.rb" time="0.001017"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/connection_details_spec.rb" time="0.001090"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model attributes #max_frame_size retrieves attribute :max_frame_size" file="./spec/unit/models/connection_details_spec.rb" time="0.000950"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model attributes #connection_key retrieves attribute :connection_key" file="./spec/unit/models/connection_details_spec.rb" time="0.000992"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/connection_details_spec.rb" time="0.000946"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model attributes #client_id retrieves attribute :client_id" file="./spec/unit/models/connection_details_spec.rb" time="0.001016"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/connection_details_spec.rb" time="0.000976"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model attributes #max_inbound_rate retrieves attribute :max_inbound_rate" file="./spec/unit/models/connection_details_spec.rb" time="0.001014"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails behaves like a model attributes #max_message_size retrieves attribute :max_message_size" file="./spec/unit/models/connection_details_spec.rb" time="0.000940"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails == is false when attributes are not the same" file="./spec/unit/models/connection_details_spec.rb" time="0.001295"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails == is false when class type differs" file="./spec/unit/models/connection_details_spec.rb" time="0.000955"></testcase>
<testcase classname="spec.unit.models.connection_details_spec" name="Ably::Models::ConnectionDetails == is true when attributes are the same" file="./spec/unit/models/connection_details_spec.rb" time="0.001343"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::Message behaves like a safe Deferrable #callback adds a callback that is called when #succed is called" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001191"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::Message behaves like a safe Deferrable #callback catches exceptions in the callback and logs the error to the logger" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001668"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::Message behaves like a safe Deferrable #succeed calls the callbacks defined with #callback, but not the ones added for #errback" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001161"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::Message behaves like a safe Deferrable #fail calls the callbacks defined with #errback, but not the ones added for success #callback" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001117"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::Message behaves like a safe Deferrable #errback adds a callback that is called when #fail is called" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001125"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::Message behaves like a safe Deferrable #errback catches exceptions in the callback and logs the error to the logger" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001505"></testcase>
<testcase classname="spec.unit.realtime.realtime_spec" name="Ably::Realtime constructor returns an Ably::Realtime::Client" file="./spec/unit/realtime/realtime_spec.rb" time="0.001558"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult paged transformations with each block calls the block for each result on second page after retrieving the results" file="./spec/unit/models/paginated_result_spec.rb" time="0.002849"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult paged transformations with each block calls the block for each result after retrieving the results" file="./spec/unit/models/paginated_result_spec.rb" time="0.002054"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult paged transformations with option async_blocking_operations: true #next returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/unit/models/paginated_result_spec.rb" time="23.627090"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error: signal_loopbreak

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `block in spawn_threadpool&apos;
------------------
--- Caused by: ---
RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
  ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;</failure></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult paged transformations with option async_blocking_operations: true #next allows a success callback block to be added" file="./spec/unit/models/paginated_result_spec.rb" time="23.765300"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error: signal_loopbreak

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `block in spawn_threadpool&apos;</failure></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult paged transformations with option async_blocking_operations: true #first calls the errback callback when first page headers are missing" file="./spec/unit/models/paginated_result_spec.rb" time="23.510837"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error: signal_loopbreak

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `block in spawn_threadpool&apos;</failure></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items #last gets the last item in page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001535"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items provides [] accessor method" file="./spec/unit/models/paginated_result_spec.rb" time="0.001151"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items #first gets the first item in page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001092"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items returns correct length from body" file="./spec/unit/models/paginated_result_spec.rb" time="0.001139"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items is Enumerable" file="./spec/unit/models/paginated_result_spec.rb" time="0.001075"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items is iterable" file="./spec/unit/models/paginated_result_spec.rb" time="0.001071"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items with coercion returns coerced objects" file="./spec/unit/models/paginated_result_spec.rb" time="0.001196"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items #each yields each item" file="./spec/unit/models/paginated_result_spec.rb" time="0.001096"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult#items #each returns an enumerator" file="./spec/unit/models/paginated_result_spec.rb" time="0.001096"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response has next page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001195"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response supports pagination" file="./spec/unit/models/paginated_result_spec.rb" time="0.001101"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response is not the last page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001144"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response accessing next page returns another PaginatedResult" file="./spec/unit/models/paginated_result_spec.rb" time="0.001496"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response accessing next page retrieves the next page of results" file="./spec/unit/models/paginated_result_spec.rb" time="0.001433"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response accessing next page returns nil when trying to access the last page when it is the last page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001430"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response accessing next page does not have a next page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001446"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response accessing next page is the last page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001420"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response accessing next page and then first page retrieves the first page of results" file="./spec/unit/models/paginated_result_spec.rb" time="0.001625"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with paged http response accessing next page and then first page returns a PaginatedResult" file="./spec/unit/models/paginated_result_spec.rb" time="0.001604"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with non paged http response does not support pagination" file="./spec/unit/models/paginated_result_spec.rb" time="0.001138"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with non paged http response is the last page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001158"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with non paged http response returns nil when accessing next page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001117"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with non paged http response does not have next page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001104"></testcase>
<testcase classname="spec.unit.models.paginated_result_spec" name="Ably::Models::PaginatedResult with non paged http response returns nil when accessing first page" file="./spec/unit/models/paginated_result_spec.rb" time="0.001109"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels#fetch calls the block if channel is missing" file="./spec/unit/realtime/channels_spec.rb" time="0.001001"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels#fetch retrieves a channel if it exists" file="./spec/unit/realtime/channels_spec.rb" time="0.001386"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels [] creates a channel" file="./spec/unit/realtime/channels_spec.rb" time="0.001285"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when an existing channel exists will leave the options intact on the channel if not provided" file="./spec/unit/realtime/channels_spec.rb" time="0.001463"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when an existing channel exists will update the options on the channel if provided (RSN3c)" file="./spec/unit/realtime/channels_spec.rb" time="0.001610"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when an existing channel exists ChannelOptions object is expected to be a kind of Ably::Models::ChannelOptions" file="./spec/unit/realtime/channels_spec.rb" time="0.000933"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when an existing channel exists ChannelOptions object will reuse a channel object if it exists (RTS3a)" file="./spec/unit/realtime/channels_spec.rb" time="0.001410"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when an existing channel exists hash will reuse a channel object if it exists (RTS3a)" file="./spec/unit/realtime/channels_spec.rb" time="0.001456"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when an existing channel exists hash is expected to be a kind of Hash" file="./spec/unit/realtime/channels_spec.rb" time="0.000853"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when channel doesn&apos;t exist ChannelOptions object is expected to be a kind of Ably::Models::ChannelOptions" file="./spec/unit/realtime/channels_spec.rb" time="0.000886"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when channel doesn&apos;t exist ChannelOptions object creates a channel (RTS3a)" file="./spec/unit/realtime/channels_spec.rb" time="0.001447"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when channel doesn&apos;t exist hash is expected to be a kind of Hash" file="./spec/unit/realtime/channels_spec.rb" time="0.000872"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels creating channels #get when channel doesn&apos;t exist hash creates a channel (RTS3a)" file="./spec/unit/realtime/channels_spec.rb" time="0.001240"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels destroying channels #release detaches and then releases the channel resources" file="./spec/unit/realtime/channels_spec.rb" time="0.001797"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels is Enumerable allows enumeration" file="./spec/unit/realtime/channels_spec.rb" time="0.001577"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels is Enumerable provides #length" file="./spec/unit/realtime/channels_spec.rb" time="0.001552"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels is Enumerable #each yields each channel" file="./spec/unit/realtime/channels_spec.rb" time="0.001562"></testcase>
<testcase classname="spec.unit.realtime.channels_spec" name="Ably::Realtime::Channels is Enumerable #each returns an enumerator" file="./spec/unit/realtime/channels_spec.rb" time="0.001564"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with json payload before other payloads decodes json" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000908"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with json payload before other payloads strips the encoding" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.001085"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with another payload leaves the message data intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000895"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with another payload leaves the encoding intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000899"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with json payload decodes json" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.001033"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with json payload strips the encoding" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000853"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with json payload in camelCase decodes json" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000785"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#decode message with json payload in camelCase strips the encoding" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000938"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with Array payload adds the encoding" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000822"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with Array payload encodes Array payload data as json" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000778"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with hash payload and underscore case keys adds the encoding" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000962"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with hash payload and underscore case keys encodes hash payload data as json and leaves underscore case in tact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000785"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode already encoded message with hash payload adds the encoding" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode already encoded message with hash payload encodes hash payload data as json" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000991"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with hash payload adds the encoding" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000792"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with hash payload encodes hash payload data as json" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000738"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with nil payload leaves the message data intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000941"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with nil payload leaves the encoding intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000845"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with no data payload leaves the encoding intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with no data payload leaves the message data intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000848"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with UTF-8 payload leaves the encoding intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000945"></testcase>
<testcase classname="spec.unit.models.message_encoders.json_spec" name="Ably::Models::MessageEncoders::Json#encode message with UTF-8 payload leaves the message data intact" file="./spec/unit/models/message_encoders/json_spec.rb" time="0.000774"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options :use_token_auth set to true without a key or token fails as a key is required to issue tokens" file="./spec/unit/rest/client_spec.rb" time="0.000872"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options :use_token_auth set to false with a key and :tls =&gt; false fails for any operation with basic auth and attempting to send an API key over a non-secure connection" file="./spec/unit/rest/client_spec.rb" time="0.002145"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options :use_token_auth set to false without a key fails as a key is required if not using token auth" file="./spec/unit/rest/client_spec.rb" time="0.000862"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options TLS disabled fails for any operation with basic auth and attempting to send an API key over a non-secure connection (#RSA1)" file="./spec/unit/rest/client_spec.rb" time="0.001888"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options fallback_retry_timeout (#RSC15f) when provided configures a new timeout" file="./spec/unit/rest/client_spec.rb" time="0.000820"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options fallback_retry_timeout (#RSC15f) default is set to 10 minutes" file="./spec/unit/rest/client_spec.rb" time="0.000801"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options max_message_size is customized 131072 bytes should return 131072" file="./spec/unit/rest/client_spec.rb" time="0.000823"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options max_message_size is nil should return default 65536 (#TO3l8)" file="./spec/unit/rest/client_spec.rb" time="0.000815"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options max_message_size is not present should return default 65536 (#TO3l8)" file="./spec/unit/rest/client_spec.rb" time="0.000793"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options use agent set agent to non-default value default agent should return default ably agent" file="./spec/unit/rest/client_spec.rb" time="0.000817"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client initializer options use agent set agent to non-default value custom agent should overwrite client.agent" file="./spec/unit/rest/client_spec.rb" time="0.000785"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with token_params configures default_token_params" file="./spec/unit/rest/client_spec.rb" time="0.001437"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments tls defaults to TLS" file="./spec/unit/rest/client_spec.rb" time="0.000938"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments tls set to false uses HTTP" file="./spec/unit/rest/client_spec.rb" time="0.000943"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments tls set to false uses plain text" file="./spec/unit/rest/client_spec.rb" time="0.000891"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments logger default uses Ruby Logger" file="./spec/unit/rest/client_spec.rb" time="0.000953"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments logger default specifies Logger::WARN log level" file="./spec/unit/rest/client_spec.rb" time="0.000915"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments logger with custom logger and log_level uses the custom logger" file="./spec/unit/rest/client_spec.rb" time="0.000909"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments logger with custom logger and log_level sets the custom log level" file="./spec/unit/rest/client_spec.rb" time="0.000905"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments logger with log_level :none silences all logging with a NilLogger" file="./spec/unit/rest/client_spec.rb" time="0.000929"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with a string key instead of options hash sets the key_secret" file="./spec/unit/rest/client_spec.rb" time="0.000889"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with a string key instead of options hash uses basic auth" file="./spec/unit/rest/client_spec.rb" time="0.000899"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with a string key instead of options hash sets the key" file="./spec/unit/rest/client_spec.rb" time="0.000897"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with a string key instead of options hash sets the key_name" file="./spec/unit/rest/client_spec.rb" time="0.000899"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments environment when set with custom fallback hosts configured uses the custom provided fallback hosts (#RSC15a)" file="./spec/unit/rest/client_spec.rb" time="0.000847"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments environment when set with custom fallback hosts configured sets the environment attribute" file="./spec/unit/rest/client_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments environment when set with fallback_hosts_use_default sets the environment attribute" file="./spec/unit/rest/client_spec.rb" time="0.000809"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments environment when set with fallback_hosts_use_default uses the production default fallback hosts (#RTN17b)" file="./spec/unit/rest/client_spec.rb" time="0.000806"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments environment when set without custom fallback hosts configured uses the default fallback hosts (#TBC, see https://github.com/ably/wiki/issues/361)" file="./spec/unit/rest/client_spec.rb" time="0.000882"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments environment when set without custom fallback hosts configured sets the environment attribute" file="./spec/unit/rest/client_spec.rb" time="0.000811"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments endpoint defaults to production" file="./spec/unit/rest/client_spec.rb" time="0.000956"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments endpoint with port option and non-TLS connections uses the custom port for non-TLS requests" file="./spec/unit/rest/client_spec.rb" time="0.001057"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments endpoint with realtime_host option uses an alternate endpoint for Realtime clients" file="./spec/unit/rest/client_spec.rb" time="0.000931"><skipped/></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments endpoint with environment option uses an alternate endpoint" file="./spec/unit/rest/client_spec.rb" time="0.000966"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments endpoint with tls_port option and a TLS connection uses the custom port for TLS requests" file="./spec/unit/rest/client_spec.rb" time="0.000983"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments endpoint with rest_host option uses an alternate endpoint for REST clients" file="./spec/unit/rest/client_spec.rb" time="0.000995"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with token sets the token" file="./spec/unit/rest/client_spec.rb" time="0.001482"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with a string token key instead of options hash sets the token" file="./spec/unit/rest/client_spec.rb" time="0.001546"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments custom port when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/rest/client_spec.rb" time="0.000872"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments realtime_host when set without custom fallback hosts configured sets the realtime_host option" file="./spec/unit/rest/client_spec.rb" time="0.000855"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments realtime_host when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/rest/client_spec.rb" time="0.000834"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments rest_host when set with custom fallback hosts configured has no default fallback hosts" file="./spec/unit/rest/client_spec.rb" time="0.000917"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments rest_host when set with custom fallback hosts configured sets the custom_host attribute" file="./spec/unit/rest/client_spec.rb" time="0.000841"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments rest_host when set with environment and without custom fallback hosts configured sets the environment attribute" file="./spec/unit/rest/client_spec.rb" time="0.000830"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments rest_host when set with environment and without custom fallback hosts configured sets the custom_host attribute" file="./spec/unit/rest/client_spec.rb" time="0.000864"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments rest_host when set with environment and without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/rest/client_spec.rb" time="0.000907"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments rest_host when set without custom fallback hosts configured sets the custom_host attribute" file="./spec/unit/rest/client_spec.rb" time="0.000869"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments rest_host when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/rest/client_spec.rb" time="0.000900"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments with token_details sets the token" file="./spec/unit/rest/client_spec.rb" time="0.001477"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments key_name and key_secret constructs a key" file="./spec/unit/rest/client_spec.rb" time="0.000888"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments custom TLS port when set without custom fallback hosts configured has no default fallback hosts" file="./spec/unit/rest/client_spec.rb" time="0.004459"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments key only connects to the Ably service" file="./spec/unit/rest/client_spec.rb" time="0.000831"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with valid arguments key only uses basic auth" file="./spec/unit/rest/client_spec.rb" time="0.000804"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer delegators delegates :auth_options to .auth" file="./spec/unit/rest/client_spec.rb" time="0.001176"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer delegators delegates :client_id to .auth" file="./spec/unit/rest/client_spec.rb" time="0.001110"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with invalid arguments nil raises an exception" file="./spec/unit/rest/client_spec.rb" time="0.000782"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with invalid arguments empty hash raises an exception" file="./spec/unit/rest/client_spec.rb" time="0.000818"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with invalid arguments key: &quot;invalid&quot; raises an exception" file="./spec/unit/rest/client_spec.rb" time="0.000810"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with invalid arguments key and key_secret raises an exception" file="./spec/unit/rest/client_spec.rb" time="0.000793"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with invalid arguments key and key_name raises an exception" file="./spec/unit/rest/client_spec.rb" time="0.000800"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client behaves like a client initializer with invalid arguments key: &quot;invalid:asdad&quot; raises an exception" file="./spec/unit/rest/client_spec.rb" time="0.000798"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client request_id generation includes request_id in URL" file="./spec/unit/rest/client_spec.rb" time="0.000815"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client push #device is not supported and raises an exception" file="./spec/unit/rest/client_spec.rb" time="0.000836"></testcase>
<testcase classname="spec.unit.rest.client_spec" name="Ably::Rest::Client push #push returns a Push object" file="./spec/unit/rest/client_spec.rb" time="0.000776"></testcase>
<testcase classname="spec.unit.realtime.websocket_transport_spec" name="Ably::Realtime::Connection::WebsocketTransport behaves like an incoming protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub supports valid ProtocolMessage messages" file="./spec/unit/realtime/websocket_transport_spec.rb" time="0.001521"></testcase>
<testcase classname="spec.unit.realtime.websocket_transport_spec" name="Ably::Realtime::Connection::WebsocketTransport behaves like an incoming protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub fail with unacceptable STATE event names" file="./spec/unit/realtime/websocket_transport_spec.rb" time="0.001303"></testcase>
<testcase classname="spec.unit.realtime.websocket_transport_spec" name="Ably::Realtime::Connection::WebsocketTransport behaves like an outgoing protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub supports valid ProtocolMessage messages" file="./spec/unit/realtime/websocket_transport_spec.rb" time="0.001389"></testcase>
<testcase classname="spec.unit.realtime.websocket_transport_spec" name="Ably::Realtime::Connection::WebsocketTransport behaves like an outgoing protocol message bus behaves like a protocol message bus __protocol_msgbus__ PubSub fail with unacceptable STATE event names" file="./spec/unit/realtime/websocket_transport_spec.rb" time="0.001284"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#api_requests stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000811"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#api_requests stats returns value for succeeded" file="./spec/unit/models/stats_spec.rb" time="0.000770"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#api_requests stats returns value for failed" file="./spec/unit/models/stats_spec.rb" time="0.000786"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#api_requests stats returns a RequestCount object" file="./spec/unit/models/stats_spec.rb" time="0.000779"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#api_requests stats #failed is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000768"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#api_requests stats #succeeded is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000796"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#api_requests stats #refused is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000789"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats returns value for realtime message counts" file="./spec/unit/models/stats_spec.rb" time="0.000835"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats returns a MessageTraffic object" file="./spec/unit/models/stats_spec.rb" time="0.000739"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats returns value for all presence data" file="./spec/unit/models/stats_spec.rb" time="0.000760"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats #rest is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000785"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats #webhook is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000798"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats #all is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000754"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#inbound stats #realtime is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000755"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats returns value for peak channels" file="./spec/unit/models/stats_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats returns value for opened counts" file="./spec/unit/models/stats_spec.rb" time="0.000779"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000772"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats returns a ResourceCount object" file="./spec/unit/models/stats_spec.rb" time="0.000710"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats returns zero for empty values" file="./spec/unit/models/stats_spec.rb" time="0.000737"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats #mean is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000781"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats #opened is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000785"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats #min is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000778"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats #refused is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000775"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#channels stats #peak is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000752"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats returns zero for empty values" file="./spec/unit/models/stats_spec.rb" time="0.000844"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats returns value for all peak connections" file="./spec/unit/models/stats_spec.rb" time="0.000759"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000742"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats returns a ConnectionTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000731"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats returns value for tls opened counts" file="./spec/unit/models/stats_spec.rb" time="0.000754"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats #plain is a ResourceCount object" file="./spec/unit/models/stats_spec.rb" time="0.000811"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats #all is a ResourceCount object" file="./spec/unit/models/stats_spec.rb" time="0.000778"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#connections stats #tls is a ResourceCount object" file="./spec/unit/models/stats_spec.rb" time="0.000775"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#interval_granularity returns the granularity of the interval_id" file="./spec/unit/models/stats_spec.rb" time="0.000821"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#token_requests stats returns a RequestCount object" file="./spec/unit/models/stats_spec.rb" time="0.000798"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#token_requests stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000781"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#token_requests stats returns value for succeeded" file="./spec/unit/models/stats_spec.rb" time="0.000790"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#token_requests stats returns value for failed" file="./spec/unit/models/stats_spec.rb" time="0.000789"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#token_requests stats #succeeded is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000832"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#token_requests stats #failed is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000807"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#token_requests stats #refused is a Integer object" file="./spec/unit/models/stats_spec.rb" time="0.000801"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats returns value for all presence data" file="./spec/unit/models/stats_spec.rb" time="0.000837"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats returns value for realtime message counts" file="./spec/unit/models/stats_spec.rb" time="0.000835"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000830"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats returns a MessageTraffic object" file="./spec/unit/models/stats_spec.rb" time="0.000754"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats #webhook is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000801"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats #realtime is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000795"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats #rest is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000845"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#outbound stats #all is a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000782"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #to_interval_id when time zone of time argument is UTC fails with invalid granularity" file="./spec/unit/models/stats_spec.rb" time="0.000837"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #to_interval_id when time zone of time argument is UTC converts time 2014-02-03:05:06 with granularity :minute into 2014-02-03:05:06" file="./spec/unit/models/stats_spec.rb" time="0.000791"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #to_interval_id when time zone of time argument is UTC converts time 2014-02-03:05:06 with granularity :hour into 2014-02-03:05" file="./spec/unit/models/stats_spec.rb" time="0.000811"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #to_interval_id when time zone of time argument is UTC fails with invalid time" file="./spec/unit/models/stats_spec.rb" time="0.000777"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #to_interval_id when time zone of time argument is UTC converts time 2014-02-03:05:06 with granularity :day into 2014-02-03" file="./spec/unit/models/stats_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #to_interval_id when time zone of time argument is UTC converts time 2014-02-03:05:06 with granularity :month into 2014-02" file="./spec/unit/models/stats_spec.rb" time="0.000789"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #to_interval_id when time zone of time argument is +02:00 converts time 2014-02-03:06 with granularity :hour into 2014-02-03:04 at UTC +00:00" file="./spec/unit/models/stats_spec.rb" time="0.000798"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #from_interval_id converts an hour interval_id 2014-02-03:05 into a Time object in UTC 0" file="./spec/unit/models/stats_spec.rb" time="0.004488"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #from_interval_id converts a month interval_id 2014-02 into a Time object in UTC 0" file="./spec/unit/models/stats_spec.rb" time="0.000802"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #from_interval_id converts a day interval_id 2014-02-03 into a Time object in UTC 0" file="./spec/unit/models/stats_spec.rb" time="0.000772"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #from_interval_id fails with an invalid interval_id 14-20" file="./spec/unit/models/stats_spec.rb" time="0.000738"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #from_interval_id converts a minute interval_id 2014-02-03:05:06 into a Time object in UTC 0" file="./spec/unit/models/stats_spec.rb" time="0.000751"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #granularity_from_interval_id returns a :month interval_id for 2014-02" file="./spec/unit/models/stats_spec.rb" time="0.000769"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #granularity_from_interval_id returns a :day interval_id for 2014-02-03" file="./spec/unit/models/stats_spec.rb" time="0.000724"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #granularity_from_interval_id returns a :minute interval_id for 2014-02-03:05:06" file="./spec/unit/models/stats_spec.rb" time="0.000680"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #granularity_from_interval_id fails with an invalid interval_id 14-20" file="./spec/unit/models/stats_spec.rb" time="0.000729"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats class methods #granularity_from_interval_id returns a :hour interval_id for 2014-02-03:05" file="./spec/unit/models/stats_spec.rb" time="0.000710"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats returns value for all data transferred" file="./spec/unit/models/stats_spec.rb" time="0.000764"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000765"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats returns zero for empty values" file="./spec/unit/models/stats_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats returns value for message counts" file="./spec/unit/models/stats_spec.rb" time="0.000761"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats returns a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000752"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats #presence is a MessageCount object" file="./spec/unit/models/stats_spec.rb" time="0.000808"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats #all is a MessageCount object" file="./spec/unit/models/stats_spec.rb" time="0.000783"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#persisted stats #messages is a MessageCount object" file="./spec/unit/models/stats_spec.rb" time="0.000769"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#interval_time returns a Time object representing the start of the interval" file="./spec/unit/models/stats_spec.rb" time="0.000813"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats returns value for message counts" file="./spec/unit/models/stats_spec.rb" time="0.000809"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats raises an exception for unknown attributes" file="./spec/unit/models/stats_spec.rb" time="0.000762"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats returns value for all data transferred" file="./spec/unit/models/stats_spec.rb" time="0.000754"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats returns zero for empty values" file="./spec/unit/models/stats_spec.rb" time="0.000759"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats returns a MessageTypes object" file="./spec/unit/models/stats_spec.rb" time="0.000764"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats #messages is a MessageCount object" file="./spec/unit/models/stats_spec.rb" time="0.000756"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats #presence is a MessageCount object" file="./spec/unit/models/stats_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.unit.models.stats_spec" name="Ably::Models::Stats#all stats #all is a MessageCount object" file="./spec/unit/models/stats_spec.rb" time="0.000749"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage initializer action coercion ignores actions that are Integers" file="./spec/unit/models/protocol_message_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage initializer action coercion raises an argument error if nil" file="./spec/unit/models/protocol_message_spec.rb" time="0.000777"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage initializer action coercion converts actions to Integers if a symbol" file="./spec/unit/models/protocol_message_spec.rb" time="0.000761"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage initializer action coercion converts actions to Integers if a ACTION" file="./spec/unit/models/protocol_message_spec.rb" time="0.000746"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage#to_msgpack returns a unpackable msgpack object" file="./spec/unit/models/protocol_message_spec.rb" time="0.001509"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/protocol_message_spec.rb" time="0.000995"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model is immutable dups options" file="./spec/unit/models/protocol_message_spec.rb" time="0.000794"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model is immutable prevents changes" file="./spec/unit/models/protocol_message_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model attributes #channel retrieves attribute :channel" file="./spec/unit/models/protocol_message_spec.rb" time="0.000839"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/protocol_message_spec.rb" time="0.000810"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/protocol_message_spec.rb" time="0.000747"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model attributes #id retrieves attribute :id" file="./spec/unit/models/protocol_message_spec.rb" time="0.000786"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model attributes #connection_id retrieves attribute :connection_id" file="./spec/unit/models/protocol_message_spec.rb" time="0.000832"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model attributes #channel_serial retrieves attribute :channel_serial" file="./spec/unit/models/protocol_message_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/protocol_message_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model #== is true when attributes are the same" file="./spec/unit/models/protocol_message_spec.rb" time="0.000841"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model #== is false when class type differs" file="./spec/unit/models/protocol_message_spec.rb" time="0.000772"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/protocol_message_spec.rb" time="0.001000"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage#to_json with valid data populates the messages" file="./spec/unit/models/protocol_message_spec.rb" time="0.001500"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage#to_json with valid data converts the attribute back to Java mixedCase notation using string keys" file="./spec/unit/models/protocol_message_spec.rb" time="0.001483"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage#to_json with missing msg_serial for ack message it raises an exception" file="./spec/unit/models/protocol_message_spec.rb" time="0.001092"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage#to_json is aliased by #to_s " file="./spec/unit/models/protocol_message_spec.rb" time="0.001753"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_connection_serial? with connection_serial returns true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000826"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_connection_serial? without connection_serial returns false" file="./spec/unit/models/protocol_message_spec.rb" time="0.000885"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #message_serial converts :msg_serial to an Integer" file="./spec/unit/models/protocol_message_spec.rb" time="0.000822"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_serial? with msg_serial returns true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000922"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_serial? without msg_serial or connection_serial returns false" file="./spec/unit/models/protocol_message_spec.rb" time="0.000950"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_serial? with connection_serial returns true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000799"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes Java naming converts the attribute to ruby symbol naming convention" file="./spec/unit/models/protocol_message_spec.rb" time="0.000826"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_message_serial? with msg_serial returns true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000819"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_message_serial? without msg_serial returns false" file="./spec/unit/models/protocol_message_spec.rb" time="0.000866"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #messages (#TR4k) contains Message objects" file="./spec/unit/models/protocol_message_spec.rb" time="0.000949"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #messages (#RTL21) contains Message objects in ascending order" file="./spec/unit/models/protocol_message_spec.rb" time="0.001384"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #timestamp retrieves attribute :timestamp as Time object" file="./spec/unit/models/protocol_message_spec.rb" time="0.000925"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #action returns an Enum that behaves like a symbol" file="./spec/unit/models/protocol_message_spec.rb" time="0.000849"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #action returns an Enum that matchdes the ACTION constant" file="./spec/unit/models/protocol_message_spec.rb" time="0.000827"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #action returns an Enum that behaves like a Numeric" file="./spec/unit/models/protocol_message_spec.rb" time="0.000806"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #action returns an Enum that behaves like a String" file="./spec/unit/models/protocol_message_spec.rb" time="0.000859"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #count when greater than 1 is the value of count" file="./spec/unit/models/protocol_message_spec.rb" time="0.004485"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #count when missing is 1" file="./spec/unit/models/protocol_message_spec.rb" time="0.000816"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #count when non numeric is 1" file="./spec/unit/models/protocol_message_spec.rb" time="0.000749"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #params (#RTL4k1) when present is expected to eq {:foo=&gt;:bar}" file="./spec/unit/models/protocol_message_spec.rb" time="0.000940"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #params (#RTL4k1) when empty is expected to eq {}" file="./spec/unit/models/protocol_message_spec.rb" time="0.000814"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #connection_serial converts :connection_serial to an Integer" file="./spec/unit/models/protocol_message_spec.rb" time="0.000793"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #connection_details (#TR4o) with a JSON value contains a ConnectionDetails object" file="./spec/unit/models/protocol_message_spec.rb" time="0.001083"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #connection_details (#TR4o) with a JSON value contains the attributes from the JSON connectionDetails" file="./spec/unit/models/protocol_message_spec.rb" time="0.001061"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #connection_details (#TR4o) without a JSON value contains an empty ConnectionDetails object" file="./spec/unit/models/protocol_message_spec.rb" time="0.001101"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #error with nil error returns nil" file="./spec/unit/models/protocol_message_spec.rb" time="0.000774"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #error with error returns a valid ErrorInfo object" file="./spec/unit/models/protocol_message_spec.rb" time="0.000832"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #error with no error attribute returns nil" file="./spec/unit/models/protocol_message_spec.rb" time="0.000775"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_correct_message_size? (#TO3l8) on presence should return false when a message has not correct size" file="./spec/unit/models/protocol_message_spec.rb" time="0.001270"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_correct_message_size? (#TO3l8) on presence should return true when a message has correct size" file="./spec/unit/models/protocol_message_spec.rb" time="0.001210"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_correct_message_size? (#TO3l8) on message should return true when a message has correct size" file="./spec/unit/models/protocol_message_spec.rb" time="0.001274"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #has_correct_message_size? (#TO3l8) on message should return false when a message has not correct size" file="./spec/unit/models/protocol_message_spec.rb" time="0.001269"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #serial with underlying connection_serial and msg_serial prefers connection_serial and converts :connection_serial to an Integer" file="./spec/unit/models/protocol_message_spec.rb" time="0.000818"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #serial with underlying connection_serial converts :connection_serial to an Integer" file="./spec/unit/models/protocol_message_spec.rb" time="0.000831"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #serial with underlying msg_serial converts :msg_serial to an Integer" file="./spec/unit/models/protocol_message_spec.rb" time="0.000950"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #presence (#TR4l) contains PresenceMessage objects" file="./spec/unit/models/protocol_message_spec.rb" time="0.000942"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when has another future flag #has_backlog_flag? is true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when has another future flag #has_presence_flag? is false" file="./spec/unit/models/protocol_message_spec.rb" time="0.000788"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when channel resumed flag present #has_presence_flag? is false" file="./spec/unit/models/protocol_message_spec.rb" time="0.000758"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when channel resumed flag present #has_channel_resumed_flag? is true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000742"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when attach resumed flag flags is 0 should raise an exception if flags is a float number" file="./spec/unit/models/protocol_message_spec.rb" time="0.000808"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when attach resumed flag flags is 34 #has_attach_resume_flag? is true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000816"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when attach resumed flag flags is 34 #has_attach_presence_flag? is false" file="./spec/unit/models/protocol_message_spec.rb" time="0.000757"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when channel resumed and presence flags present #has_presence_flag? is true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000758"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when channel resumed and presence flags present #has_channel_resumed_flag? is true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000720"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when presence flag present #has_presence_flag? is true" file="./spec/unit/models/protocol_message_spec.rb" time="0.000737"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when presence flag present #has_channel_resumed_flag? is false" file="./spec/unit/models/protocol_message_spec.rb" time="0.000766"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when nil is zero" file="./spec/unit/models/protocol_message_spec.rb" time="0.000766"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #flags (#TR4i) when numeric is an Integer" file="./spec/unit/models/protocol_message_spec.rb" time="0.000744"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #auth (#TR4p) with a JSON value contains the attributes from the JSON auth details" file="./spec/unit/models/protocol_message_spec.rb" time="0.000795"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #auth (#TR4p) with a JSON value contains a AuthDetails object" file="./spec/unit/models/protocol_message_spec.rb" time="0.000805"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #auth (#TR4p) without a JSON value contains an empty AuthDetails object" file="./spec/unit/models/protocol_message_spec.rb" time="0.000855"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #message_size (#TO3l8) on message should return 76 bytes (sum in bytes: data, client_id, name, extras)" file="./spec/unit/models/protocol_message_spec.rb" time="0.000987"></testcase>
<testcase classname="spec.unit.models.protocol_message_spec" name="Ably::Models::ProtocolMessage attributes #message_size (#TO3l8) on presence should return 13 bytes (sum in bytes: data and client_id)" file="./spec/unit/models/protocol_message_spec.rb" time="0.000979"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#decode message with another payload leaves the message data intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000883"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#decode message with another payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000801"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#decode message with base64 payload before other payloads decodes base64" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000854"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#decode message with base64 payload before other payloads strips the encoding" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000808"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#decode message with base64 payload decodes base64" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000876"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#decode message with base64 payload strips the encoding" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000846"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with nil payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000848"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with nil payload leaves the message data intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000782"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport already encoded message with binary payload leaves the message data intact as Base64 encoding is not necessary" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000870"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport already encoded message with binary payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000844"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with empty binary string payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000817"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with empty binary string payload leaves the message data intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000806"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with UTF-8 payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000840"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with UTF-8 payload leaves the data intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000792"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with binary payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000813"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over binary transport message with binary payload leaves the message data intact as Base64 encoding is not necessary" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000806"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport message with UTF-8 payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.001072"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport message with UTF-8 payload leaves the data intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000986"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport already encoded message with binary payload adds the encoding" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000984"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport already encoded message with binary payload encodes binary data as base64" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.001014"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport message with binary payload encodes binary data as base64" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.001008"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport message with binary payload adds the encoding" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000982"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport message with nil payload leaves the message data intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000975"></testcase>
<testcase classname="spec.unit.models.message_encoders.base64_spec" name="Ably::Models::MessageEncoders::Base64#encode over text transport message with nil payload leaves the encoding intact" file="./spec/unit/models/message_encoders/base64_spec.rb" time="0.000999"></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel msgbus supports messages" file="./spec/unit/realtime/channel_spec.rb" time="23.793805"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:141:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:145:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel msgbus fail with unacceptable STATE event names" file="./spec/unit/realtime/channel_spec.rb" time="23.662218"><failure message="expected KeyError, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
  # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
  # ./lib/ably/realtime/connection.rb:163:in `new&apos;
  # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:132:in `new&apos;
  # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:141:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:150:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:150:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected KeyError, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
    # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
    # ./lib/ably/realtime/connection.rb:163:in `new&apos;
    # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:132:in `new&apos;
    # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:141:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:150:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:150:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/unit/realtime/channel_spec.rb:150:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #subscribe with no event name specified subscribes the provided block to all events" file="./spec/unit/realtime/channel_spec.rb" time="23.538940"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:166:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #subscribe with a multiple duplicate event name arguments subscribes that block to all of those unique event names once" file="./spec/unit/realtime/channel_spec.rb" time="23.413996"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:166:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #subscribe with a single event name subscribes that block to matching events" file="./spec/unit/realtime/channel_spec.rb" time="23.217944"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:166:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #subscribe without a block raises an invalid ArgumentError" file="./spec/unit/realtime/channel_spec.rb" time="24.156421"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:166:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #subscribe with a multiple event name arguments subscribes that block to all of those event names" file="./spec/unit/realtime/channel_spec.rb" time="23.734020"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:166:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #unsubscribe with multiple event name arguments unsubscribes each of those matching event names with the provided block" file="./spec/unit/realtime/channel_spec.rb" time="23.403524"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:211:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #unsubscribe with no event name specified unsubscribes that block from all events" file="./spec/unit/realtime/channel_spec.rb" time="23.180480"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:211:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #unsubscribe with no block argument unsubscribes all blocks for the event name argument" file="./spec/unit/realtime/channel_spec.rb" time="23.731233"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:211:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #unsubscribe with a single event name argument unsubscribes the provided block with the matching event name" file="./spec/unit/realtime/channel_spec.rb" time="23.304512"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:211:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel subscriptions #unsubscribe with a non-matching event name argument has no effect" file="./spec/unit/realtime/channel_spec.rb" time="22.987666"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:211:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as Nil raises an argument error" file="./spec/unit/realtime/channel_spec.rb" time="23.122251"><failure message="expected ArgumentError with message matching /must be a String/, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
  # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
  # ./lib/ably/realtime/connection.rb:163:in `new&apos;
  # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:132:in `new&apos;
  # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:64:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected ArgumentError with message matching /must be a String/, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
    # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
    # ./lib/ably/realtime/connection.rb:163:in `new&apos;
    # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:132:in `new&apos;
    # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:64:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/unit/realtime/channel_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as UTF_8 string is permitted" file="./spec/unit/realtime/channel_spec.rb" time="23.496588"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:20:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as UTF_8 string remains as UTF-8" file="./spec/unit/realtime/channel_spec.rb" time="23.250602"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:24:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as Integer raises an argument error" file="./spec/unit/realtime/channel_spec.rb" time="23.530066"><failure message="expected ArgumentError with message matching /must be a String/, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
  # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
  # ./lib/ably/realtime/connection.rb:163:in `new&apos;
  # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:132:in `new&apos;
  # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:56:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:56:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected ArgumentError with message matching /must be a String/, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
    # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
    # ./lib/ably/realtime/connection.rb:163:in `new&apos;
    # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:132:in `new&apos;
    # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:56:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:56:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/unit/realtime/channel_spec.rb:56:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as ASCII_8BIT string is compatible with original encoding" file="./spec/unit/realtime/channel_spec.rb" time="23.839729"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:48:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as ASCII_8BIT string gets converted to UTF-8" file="./spec/unit/realtime/channel_spec.rb" time="23.621925"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:44:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as SHIFT_JIS string gets converted to UTF-8" file="./spec/unit/realtime/channel_spec.rb" time="23.507189"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:32:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#initializer as SHIFT_JIS string is compatible with original encoding" file="./spec/unit/realtime/channel_spec.rb" time="23.394973"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:36:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel callbacks fail with unacceptable STATE event names" file="./spec/unit/realtime/channel_spec.rb" time="23.822583"><failure message="expected KeyError, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
  # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
  # ./lib/ably/realtime/connection.rb:163:in `new&apos;
  # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:132:in `new&apos;
  # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
  # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:128:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/unit/realtime/channel_spec.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected KeyError, got #&lt;RuntimeError: eventmachine not initialized: evma_signal_loopbreak&gt; with backtrace:
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
    # ./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
    # ./lib/ably/realtime/connection.rb:163:in `new&apos;
    # ./lib/ably/realtime/connection.rb:163:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:132:in `new&apos;
    # ./lib/ably/realtime/client.rb:132:in `initialize&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
    # ./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:128:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/unit/realtime/channel_spec.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/unit/realtime/channel_spec.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel callbacks are supported for valid STATE events" file="./spec/unit/realtime/channel_spec.rb" time="23.396377"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:123:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#publish name argument as SHIFT_JIS string is permitted" file="./spec/unit/realtime/channel_spec.rb" time="23.220266"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:74:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#publish name argument as Integer raises an argument error" file="./spec/unit/realtime/channel_spec.rb" time="23.815805"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:74:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#publish name argument as Nil is permitted" file="./spec/unit/realtime/channel_spec.rb" time="23.300264"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:74:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#publish name argument as ASCII_8BIT string is permitted" file="./spec/unit/realtime/channel_spec.rb" time="23.580777"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:74:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.realtime.channel_spec" name="Ably::Realtime::Channel#publish name argument as UTF_8 string is permitted" file="./spec/unit/realtime/channel_spec.rb" time="23.523701"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error:
  EventMachine.next_tick do
    # Connect once Connection object is initialised
    connection.connect if client.auto_connect &amp;&amp; connection.can_transition_to?(:connecting)
  end

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `next_tick&apos;
./lib/ably/realtime/connection/connection_manager.rb:30:in `initialize&apos;
./lib/ably/realtime/connection.rb:163:in `new&apos;
./lib/ably/realtime/connection.rb:163:in `initialize&apos;
./lib/ably/realtime/client.rb:132:in `new&apos;
./lib/ably/realtime/client.rb:132:in `initialize&apos;
./spec/unit/realtime/channel_spec.rb:6:in `new&apos;
./spec/unit/realtime/channel_spec.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:10:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/unit/realtime/channel_spec.rb:74:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items #first gets the first item in page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.002386"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items returns correct length from body" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001569"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items provides [] accessor method" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001227"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items #last gets the last item in page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001290"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items is Enumerable" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001340"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items is iterable" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001143"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items #each yields each item" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001270"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items #each returns an enumerator" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001422"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items with coercion returns coerced objects" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001232"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 paged transformations with option async_blocking_operations: true #next allows a success callback block to be added" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.002271"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error: signal_loopbreak

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `block in spawn_threadpool&apos;</failure></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 paged transformations with option async_blocking_operations: true #next returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.002050"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error: signal_loopbreak

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `block in spawn_threadpool&apos;
------------------
--- Caused by: ---
RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
  ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1134:in `signal_loopbreak&apos;</failure></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 paged transformations with option async_blocking_operations: true #first calls the errback callback when first page headers are missing" file="./spec/unit/models/http_paginated_result_spec.rb" time="23.040813"><failure message="eventmachine not initialized: evma_signal_loopbreak" type="RuntimeError">Failure/Error: signal_loopbreak

RuntimeError:
  eventmachine not initialized: evma_signal_loopbreak
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `signal_loopbreak&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1083:in `block in spawn_threadpool&apos;</failure></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 paged transformations with each block calls the block for each result on second page after retrieving the results" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.002381"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 paged transformations with each block calls the block for each result after retrieving the results" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001428"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with non paged http response does not have next page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001603"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with non paged http response does not support pagination" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001388"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with non paged http response returns nil when accessing next page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001384"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with non paged http response returns nil when accessing first page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.005849"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with non paged http response is the last page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001297"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata failed response #status_code reflects status code" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001625"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata failed response #success? is false" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001291"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata failed response #error_message to be populated" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001342"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata failed response #error_code to be populated" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001408"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata failed response #headers to be present" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001181"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata successful response #error_message to be empty" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001440"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata successful response #status_code reflects status code" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001247"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata successful response #success? is true" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001419"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata successful response #headers to be a hash" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001403"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 response metadata successful response #error_code to be empty" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001197"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items Array conversion and nil handling #HP3 with Json Array is an array" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001380"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items Array conversion and nil handling #HP3 with empty response is an array" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001241"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items Array conversion and nil handling #HP3 with Json Object is an array" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001500"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 #items Array conversion and nil handling #HP3 with nil response is an array" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001269"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response supports pagination" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001338"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response has next page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001487"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response is not the last page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001327"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response accessing next page returns another HttpPaginatedResponse" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001946"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response accessing next page retrieves the next page of results" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001581"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response accessing next page does not have a next page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.002020"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response accessing next page returns nil when trying to access the last page when it is the last page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001596"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response accessing next page is the last page" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001860"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response accessing next page and then first page returns a HttpPaginatedResponse" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001766"></testcase>
<testcase classname="spec.unit.models.http_paginated_result_spec" name="Ably::Models::HttpPaginatedResponse: #HP1 -&gt; #HP8 with paged http response accessing next page and then first page retrieves the first page of results" file="./spec/unit/models/http_paginated_result_spec.rb" time="0.001988"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with AES-256-CBC message with cipher payload strips the encoding" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001655"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with AES-256-CBC message with cipher payload decodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001655"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC 256 bit key with invalid channel_option cipher params raise an exception" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001363"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC 256 bit key without any configured encryption raise an exception" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001003"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC with invalid cipher data raise an exception" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001313"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with cipher payload strips the encoding" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001428"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with cipher payload decodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001449"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with binary payload decodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001496"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with binary payload strips the encoding" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001459"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with binary payload returns ASCII_8BIT encoded binary data" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001495"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with cipher payload before other payloads decodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001713"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with cipher payload before other payloads strips the encoding" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001628"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with another payload leaves the message data intact" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001084"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#decode with channel set up for AES-128-CBC valid cipher data message with another payload leaves the encoding intact" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.000922"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with binary payload returns ASCII_8BIT encoded binary data" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001522"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with binary payload encodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001686"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with binary payload adds the encoding without utf-8 prefixed" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001322"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with string payload adds the encoding with utf-8" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001298"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with string payload encodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001506"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with json payload encodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.005252"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with json payload adds the encoding with utf-8" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001217"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true with encryption set to to false leaves encoding intact" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.000883"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true with encryption set to to false leaves message intact as encryption is not enable" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.000911"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with existing cipher encoding before leaves message intact as it is already encrypted" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.000925"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC with encrypted set to true message with existing cipher encoding before leaves encoding intact" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.000904"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC channel_option cipher params have invalid algorithm raise an exception" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001203"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC channel_option cipher params have missing key raise an exception" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001029"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with channel set up for AES-128-CBC channel_option cipher params have invalid key length raise an exception" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001126"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with AES-256-CBC message with cipher payload strips the encoding" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001186"></testcase>
<testcase classname="spec.unit.models.message_encoders.cipher_spec" name="Ably::Models::MessageEncoders::Cipher#encode with AES-256-CBC message with cipher payload decodes cipher" file="./spec/unit/models/message_encoders/cipher_spec.rb" time="0.001452"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes #capability retrieves attribute :capability as parsed JSON" file="./spec/unit/models/token_details_spec.rb" time="0.000989"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes #expired? once grace period buffer has passed is true" file="./spec/unit/models/token_details_spec.rb" time="0.000961"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes #expired? with :from attribute is true" file="./spec/unit/models/token_details_spec.rb" time="8.546558"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes #expired? with :from attribute is false" file="./spec/unit/models/token_details_spec.rb" time="0.001640"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes #expired? within grace period buffer is false" file="./spec/unit/models/token_details_spec.rb" time="0.001542"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes #expired? when expires is not available (i.e. string tokens) is always false" file="./spec/unit/models/token_details_spec.rb" time="0.001502"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes  #expires with :expires option as milliseconds in constructor retrieves attribute :expires as Time" file="./spec/unit/models/token_details_spec.rb" time="0.000969"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes  #issued when converted to JSON is in milliseconds" file="./spec/unit/models/token_details_spec.rb" time="0.000953"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes  #issued with :issued option as milliseconds in constructor retrieves attribute :issued as Time" file="./spec/unit/models/token_details_spec.rb" time="0.000901"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes  #expires when converted to JSON is in milliseconds" file="./spec/unit/models/token_details_spec.rb" time="0.000964"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes  #expires with :expires option as a Time in constructor retrieves attribute :expires as Time" file="./spec/unit/models/token_details_spec.rb" time="0.000922"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails attributes  #issued with :issued option as a Time in constructor retrieves attribute :issued as Time" file="./spec/unit/models/token_details_spec.rb" time="0.000890"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails from_json (#TD7) with JSON-like object returns a valid TokenDetails object" file="./spec/unit/models/token_details_spec.rb" time="0.001087"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails from_json (#TD7) with Ruby idiomatic Hash object returns a valid TokenDetails object" file="./spec/unit/models/token_details_spec.rb" time="0.001020"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails from_json (#TD7) with JSON string returns a valid TokenDetails object" file="./spec/unit/models/token_details_spec.rb" time="0.001043"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model attributes #token retrieves attribute :token" file="./spec/unit/models/token_details_spec.rb" time="0.000936"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/token_details_spec.rb" time="0.001013"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/token_details_spec.rb" time="0.000879"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model attributes #client_id retrieves attribute :client_id" file="./spec/unit/models/token_details_spec.rb" time="0.000902"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model attributes #key_name retrieves attribute :key_name" file="./spec/unit/models/token_details_spec.rb" time="0.000900"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model #== is false when class type differs" file="./spec/unit/models/token_details_spec.rb" time="0.000920"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/token_details_spec.rb" time="0.000933"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model #== is true when attributes are the same" file="./spec/unit/models/token_details_spec.rb" time="0.000972"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/token_details_spec.rb" time="0.001064"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/token_details_spec.rb" time="0.001004"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model is immutable dups options" file="./spec/unit/models/token_details_spec.rb" time="0.000962"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails behaves like a model is immutable prevents changes" file="./spec/unit/models/token_details_spec.rb" time="0.001000"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails == is false when attributes are not the same" file="./spec/unit/models/token_details_spec.rb" time="0.001011"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails == is false when class type differs" file="./spec/unit/models/token_details_spec.rb" time="0.000899"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails == is true when attributes are the same" file="./spec/unit/models/token_details_spec.rb" time="0.000947"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails to_json with all attributes and values returns all attributes" file="./spec/unit/models/token_details_spec.rb" time="0.001109"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails to_json with only a token string returns populated attributes" file="./spec/unit/models/token_details_spec.rb" time="0.001029"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails TokenDetails conversion methods with a JSON object returns a new TokenDetails object from the JSON" file="./spec/unit/models/token_details_spec.rb" time="0.000898"></testcase>
<testcase classname="spec.unit.models.token_details_spec" name="Ably::Models::TokenDetails TokenDetails conversion methods with a TokenDetails object returns the TokenDetails object" file="./spec/unit/models/token_details_spec.rb" time="0.000898"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel is constructed with a channel" file="./spec/unit/realtime/push_channel_spec.rb" time="0.001250"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel exposes the channel as attribute #channel" file="./spec/unit/realtime/push_channel_spec.rb" time="0.001145"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel is available in the #push attribute of the channel" file="./spec/unit/realtime/push_channel_spec.rb" time="0.001179"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel raises an exception if constructed with an invalid type" file="./spec/unit/realtime/push_channel_spec.rb" time="0.000944"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel methods not implemented as push notifications #subscribe_device raises an unsupported exception" file="./spec/unit/realtime/push_channel_spec.rb" time="0.001208"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel methods not implemented as push notifications #get_subscriptions raises an unsupported exception" file="./spec/unit/realtime/push_channel_spec.rb" time="0.001192"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel methods not implemented as push notifications #subscribe_client_id raises an unsupported exception" file="./spec/unit/realtime/push_channel_spec.rb" time="0.001255"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel methods not implemented as push notifications #unsubscribe_device raises an unsupported exception" file="./spec/unit/realtime/push_channel_spec.rb" time="0.004978"></testcase>
<testcase classname="spec.unit.realtime.push_channel_spec" name="Ably::Realtime::Channel::PushChannel methods not implemented as push notifications #unsubscribe_client_id raises an unsupported exception" file="./spec/unit/realtime/push_channel_spec.rb" time="0.001104"></testcase>
<testcase classname="spec.unit.rest.rest_spec" name="Ably::Rest constructor returns an Ably::Rest::Client" file="./spec/unit/rest/rest_spec.rb" time="0.000930"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::ProtocolMessage behaves like a safe Deferrable #errback catches exceptions in the callback and logs the error to the logger" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001649"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::ProtocolMessage behaves like a safe Deferrable #errback adds a callback that is called when #fail is called" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001089"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::ProtocolMessage behaves like a safe Deferrable #succeed calls the callbacks defined with #callback, but not the ones added for #errback" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001114"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::ProtocolMessage behaves like a safe Deferrable #callback adds a callback that is called when #succed is called" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001057"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::ProtocolMessage behaves like a safe Deferrable #callback catches exceptions in the callback and logs the error to the logger" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001497"></testcase>
<testcase classname="spec.unit.realtime.safe_deferrable_spec" name="Ably::Models::ProtocolMessage behaves like a safe Deferrable #fail calls the callbacks defined with #errback, but not the ones added for success #callback" file="./spec/unit/realtime/safe_deferrable_spec.rb" time="0.001074"></testcase>
<testcase classname="spec.unit.realtime.incoming_message_dispatcher_spec" name="Ably::Realtime::Client::IncomingMessageDispatcher#initialize should subscribe to protocol messages from the connection" file="./spec/unit/realtime/incoming_message_dispatcher_spec.rb" time="0.001298"></testcase>
<testcase classname="spec.unit.realtime.incoming_message_dispatcher_spec" name="Ably::Realtime::Client::IncomingMessageDispatcher#dispatch_protocol_message should warn if a message is received for a non-existent channel" file="./spec/unit/realtime/incoming_message_dispatcher_spec.rb" time="0.003665"></testcase>
<testcase classname="spec.unit.realtime.incoming_message_dispatcher_spec" name="Ably::Realtime::Client::IncomingMessageDispatcher#dispatch_protocol_message should raise an exception if a message is sent that is not a ProtocolMessage" file="./spec/unit/realtime/incoming_message_dispatcher_spec.rb" time="0.001099"></testcase>
<testcase classname="spec.unit.realtime.incoming_message_dispatcher_spec" name="Ably::Realtime::Client::IncomingMessageDispatcher#dispatch_protocol_message TO3l8 on action presence should raise a protocol error when message size exceeded 65536 bytes" file="./spec/unit/realtime/incoming_message_dispatcher_spec.rb" time="0.027759"></testcase>
<testcase classname="spec.unit.realtime.incoming_message_dispatcher_spec" name="Ably::Realtime::Client::IncomingMessageDispatcher#dispatch_protocol_message TO3l8 on action message should raise a protocol error when message size exceeded 65536 bytes" file="./spec/unit/realtime/incoming_message_dispatcher_spec.rb" time="0.033653"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub event fan out #publish allows publishing to more than on subscriber" file="./spec/unit/util/pub_sub_spec.rb" time="0.001665"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub event fan out #publish sends only messages to #subscribe callbacks matching event names" file="./spec/unit/util/pub_sub_spec.rb" time="0.001021"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub event fan out without coercion only matches event names on type matches" file="./spec/unit/util/pub_sub_spec.rb" time="0.000959"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub event fan out with coercion calls the provided proc to coerce the event name" file="./spec/unit/util/pub_sub_spec.rb" time="0.000999"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub event fan out with coercion and two different configurations but sharing the same class does not share state" file="./spec/unit/util/pub_sub_spec.rb" time="0.001093"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub#unsubscribe deletes all callbacks if not block given" file="./spec/unit/util/pub_sub_spec.rb" time="0.000986"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub#unsubscribe continues if the block does not exist" file="./spec/unit/util/pub_sub_spec.rb" time="0.000989"></testcase>
<testcase classname="spec.unit.util.pub_sub_spec" name="Ably::Util::PubSub#unsubscribe deletes matching callbacks" file="./spec/unit/util/pub_sub_spec.rb" time="0.000946"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_once does not catch exceptions in provided blocks" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000878"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_once calls the block the first time an event is emitted only" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000827"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#on (#RTE3) with no event specified calls the block every time an event is emitted only" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000812"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#on (#RTE3) with no event specified catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001215"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#on (#RTE3) with event specified catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001226"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#on (#RTE3) with event specified calls the block every time an event is emitted only" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000830"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_on calls the block every time an event is emitted only" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000805"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_on does not catch exceptions in provided blocks" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000837"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#once (#RTE4) with event specified calls the block the first time an event is emitted only" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000846"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#once (#RTE4) with event specified catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001178"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#once (#RTE4) with event specified does not remove other blocks after it is called" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000815"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#once (#RTE4) with no event specified does not remove other blocks after it is called" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000819"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#once (#RTE4) with no event specified catches exceptions in the provided block, logs the error and continues" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001178"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#once (#RTE4) with no event specified calls the block the first time an event is emitted only" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000825"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out sends only messages to matching event names" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001027"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out should emit an event for any number of subscribers" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000994"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out with coercion calls the provided proc to coerce the event name" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001004"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out event callback changes within the callback block when new event callbacks are added is unaffected and processes the prior event callbacks once (#RTE6b)" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001237"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out event callback changes within the callback block when new event callbacks are added adds them for the next emitted event (#RTE6b)" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001154"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out event callback changes within the callback block when callbacks are removed removes them for the next emitted event (#RTE6b)" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001053"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out event callback changes within the callback block when callbacks are removed is unaffected and processes the prior event callbacks once (#RTE6b)" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001035"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out without coercion only matches event names on type matches" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000958"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#emit event fan out #on subscribe to multiple events with the same block" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001045"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off when on callback is configured for all events without any event names deletes all matching callbacks" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000965"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off when on callback is configured for all events without any event names deletes all callbacks if not block given" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000953"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off when on callback is configured for all events with event names as arguments does not remove the all events callback when a block is provided" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001042"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off when on callback is configured for all events with event names as arguments does not remove the all events callback when a block is not provided" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000994"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off when on callback is configured for all events with event names as arguments does not remove the all events callback when the block does not match" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001013"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off with unsafe_on subscribers does not deregister them" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001036"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off with unsafe_once subscribers does not deregister them" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001069"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off with event specified in on handler without any event names deletes all callbacks if not block given" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001050"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off with event specified in on handler without any event names deletes all matching callbacks" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000993"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off with event specified in on handler with event names as arguments deletes all matching callbacks when a block is not provided" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001022"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off with event specified in on handler with event names as arguments continues if the block does not exist" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001036"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#off with event specified in on handler with event names as arguments deletes matching callbacks when a block is provided" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000983"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_off with unsafe_on subscribers deregisters them" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000986"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_off with on subscribers does not deregister them" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001067"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_off with once subscribers does not deregister them" file="./spec/unit/modules/event_emitter_spec.rb" time="0.001039"></testcase>
<testcase classname="spec.unit.modules.event_emitter_spec" name="Ably::Modules::EventEmitter#unsafe_off with unsafe_once subscribers deregister them" file="./spec/unit/modules/event_emitter_spec.rb" time="0.000986"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails AuthDetails conversion methods with a AuthDetails object returns the AuthDetails object" file="./spec/unit/models/auth_details_spec.rb" time="0.000899"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails AuthDetails conversion methods with a JSON object returns a new AuthDetails object from the JSON" file="./spec/unit/models/auth_details_spec.rb" time="0.000881"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails == is false when class type differs" file="./spec/unit/models/auth_details_spec.rb" time="0.000817"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails == is false when attributes are not the same" file="./spec/unit/models/auth_details_spec.rb" time="0.000875"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails == is true when attributes are the same" file="./spec/unit/models/auth_details_spec.rb" time="0.000928"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model attributes #access_token retrieves attribute :access_token" file="./spec/unit/models/auth_details_spec.rb" time="0.000938"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model attributes #[] provides accessor method to #attributes" file="./spec/unit/models/auth_details_spec.rb" time="0.000897"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model attributes #attributes provides access to #attributes" file="./spec/unit/models/auth_details_spec.rb" time="0.000943"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model #== is true when attributes are the same" file="./spec/unit/models/auth_details_spec.rb" time="0.004958"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model #== is false when attributes are not the same" file="./spec/unit/models/auth_details_spec.rb" time="0.000832"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model #== is false when class type differs" file="./spec/unit/models/auth_details_spec.rb" time="0.000797"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model #to_msgpack returns a msgpack object with Ably payload naming" file="./spec/unit/models/auth_details_spec.rb" time="0.000922"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model #to_json returns a JSON string with Ably payload naming" file="./spec/unit/models/auth_details_spec.rb" time="0.000970"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model is immutable dups options" file="./spec/unit/models/auth_details_spec.rb" time="0.000852"></testcase>
<testcase classname="spec.unit.models.auth_details_spec" name="Ably::Models::AuthDetails behaves like a model is immutable prevents changes" file="./spec/unit/models/auth_details_spec.rb" time="0.000897"></testcase>
</testsuite>
