<testsuite name="rspec1" tests="630" skipped="1" failures="0" errors="0" time="11.891085" timestamp="2024-06-20T14:51:56+00:00" hostname="fv-az2021-616">
<properties>
<property name="seed" value="12149"/>
</properties>
<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.004559"></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.000787"></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.000666"></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.000683"></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.000667"></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.000648"></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.001496"></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.000706"></testcase>
<testcase classname="spec.unit.models.channel_details_spec" name="Ably::Models::ChannelDetails#channel_id should return channel id" file="./spec/unit/models/channel_details_spec.rb" time="0.000886"></testcase>
<testcase classname="spec.unit.models.channel_details_spec" name="Ably::Models::ChannelDetails#status should return status" file="./spec/unit/models/channel_details_spec.rb" time="0.001060"></testcase>
<testcase classname="spec.unit.models.channel_details_spec" name="Ably::Models::ChannelDetails#name should return name" file="./spec/unit/models/channel_details_spec.rb" time="0.000609"></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.000930"></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.000790"></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.000534"></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.000515"></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.000554"></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.000582"></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.000561"></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.000525"></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.000580"></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.000678"></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.004821"></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.000739"></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.000672"></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.000614"></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.000564"></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.000621"></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.000627"></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.000585"></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.000655"></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.001911"></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.000711"></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.000636"></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.000626"></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.000606"></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.000586"></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.000605"></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.000618"></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.000600"></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.000649"></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.000625"></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.000611"></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.000612"></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.000618"></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.000568"></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="0.000590"></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.000572"></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.000611"></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.000614"></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.000634"></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.000594"></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.000518"></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.000594"></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.000558"></testcase>
<testcase classname="spec.unit.realtime.recovery_key_context_spec" name="Ably::Realtime::RecoveryKeyContext connection recovery key should return nil for invalid recovery key - RTN16i, RTN16f, RTN16j" file="./spec/unit/realtime/recovery_key_context_spec.rb" time="0.000524"></testcase>
<testcase classname="spec.unit.realtime.recovery_key_context_spec" name="Ably::Realtime::RecoveryKeyContext connection recovery key should encode recovery key - RTN16i, RTN16f, RTN16j" file="./spec/unit/realtime/recovery_key_context_spec.rb" time="0.000582"></testcase>
<testcase classname="spec.unit.realtime.recovery_key_context_spec" name="Ably::Realtime::RecoveryKeyContext connection recovery key should decode recovery key - RTN16i, RTN16f, RTN16j" file="./spec/unit/realtime/recovery_key_context_spec.rb" time="0.000580"></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.000637"></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.000583"></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.000652"></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.000660"></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.000648"></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.000629"></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.000615"></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.000595"></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.000619"></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.000648"></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.000628"></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.001915"></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.000550"></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.000548"></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.000557"></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.000531"></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.000532"></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.000463"></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.000506"></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.000524"></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.000564"></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.000518"></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.000606"></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.001072"></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.000552"></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.000602"></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.001110"></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.000545"></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.000523"></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.000629"></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.000529"></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.001008"></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.000588"></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.000502"></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.000629"></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.000629"></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.000544"></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.000524"></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.000515"></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.000490"></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.000741"></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.000548"></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.000517"></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.000703"></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.000551"></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.000516"></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.000727"></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.000544"></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.000542"></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.000693"></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.001085"></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.000854"></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.000538"></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.000565"></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.000741"></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.000561"></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.000641"></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.000912"></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.001900"></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.000512"></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.000698"></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.000484"></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.000782"></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.000628"></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.000553"></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.000607"></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.000812"></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.000654"></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.000743"></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.000661"></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.000681"></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.000553"></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.000543"></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.000767"></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.000498"></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.000509"></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.000729"></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.000528"></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.000771"></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.000736"></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.000538"></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.000518"></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.000504"></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.000539"></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.000513"></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.000627"></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.000661"></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.000636"></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.000673"></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.000633"></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.000633"></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.000636"></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.000623"></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.000661"></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.000599"></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.000598"></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.000616"></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.000619"></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.000700"></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.000665"></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.000697"></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.000678"></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.000803"></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.000807"></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.000700"></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.001737"></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.000845"></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.000720"></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.001082"></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.000732"></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.001034"></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.000739"></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.000671"></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.000693"></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.000660"></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.000687"></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.000536"></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.000605"></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.000517"></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.000686"></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.000718"></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.000747"></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.000738"></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.000619"></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.000633"></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.000644"></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.000659"></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.000660"></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.000610"></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.000616"></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.001201"></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.000631"></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.000628"></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.000616"></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.000587"></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.000635"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth defaults should have no default TTL" file="./spec/unit/auth_spec.rb" time="0.000537"></testcase>
<testcase classname="spec.unit.auth_spec" name="Ably::Auth defaults should have no default capability" file="./spec/unit/auth_spec.rb" time="0.000593"></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.000397"></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.001440"></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.000597"></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.000491"></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.000372"></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.000335"></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.000360"></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.000374"></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.000357"></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.000927"></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.000793"></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.000465"></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.000370"></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.000375"></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.002661"></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.000662"></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.000653"></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.000974"></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.000689"></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.000690"></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.001499"></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.001980"></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.000912"></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.000949"></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.000877"></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.001177"></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.001152"></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.000816"></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.001108"></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.001035"></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.001106"></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.001116"></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.001089"></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.001070"></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.001304"></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.001127"></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.001062"></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.001080"></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.001076"></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.001118"></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.001227"></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.000994"></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.001220"></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.001579"></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.001097"></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.001158"></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.001264"></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.001243"></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.001286"></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.001306"></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.001126"></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.001029"></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.006595"></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.005129"></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="0.002747"></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.001296"></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.001183"></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.001207"></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.001237"></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.001114"></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.001183"></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.001107"></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.001322"></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.001148"></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.000892"></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.001034"></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.000980"></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.001215"></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.001247"></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.000857"></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.000934"></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.000932"></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.001018"></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.001142"></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.001018"></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.000908"></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.000824"></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.001047"></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.000861"></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.001221"></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.001219"></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.001682"></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.001502"></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.001523"></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.001450"></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.001172"></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.001425"></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.001531"></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.001052"></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.000846"></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.000882"></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.000860"></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.000856"></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="0.004373"></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="0.002520"></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="0.002517"></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.001140"></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.001273"></testcase>
<testcase classname="spec.unit.models.channel_status_spec" name="Ably::Models::ChannelStatus#is_active when occupancy is active should return true" file="./spec/unit/models/channel_status_spec.rb" time="0.000573"></testcase>
<testcase classname="spec.unit.models.channel_status_spec" name="Ably::Models::ChannelStatus#is_active when occupancy is not active should return false" file="./spec/unit/models/channel_status_spec.rb" time="0.000570"></testcase>
<testcase classname="spec.unit.models.channel_status_spec" name="Ably::Models::ChannelStatus#occupancy should return occupancy object" file="./spec/unit/models/channel_status_spec.rb" time="0.000879"></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.000781"></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.000705"></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.000645"></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.000574"></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.000524"></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.000665"></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.000692"></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.000649"></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.000539"></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.000560"></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.000636"></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.000542"></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.000569"></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.000598"></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.000616"></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.000624"></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.000667"></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.000569"></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.000583"></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.000611"></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.000652"></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.000685"></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.000642"></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.000517"></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.000573"></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.000780"></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.000880"></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.000816"></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.000779"></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.000618"></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.000702"></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.000661"></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.000800"></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.000685"></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.000668"></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.000677"></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.000703"></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.000854"></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.000837"></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.000847"></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.002319"></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.001028"></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.000595"></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.000632"></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.000740"></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.000745"></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.000670"></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.000641"></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.000827"></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.000650"></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.000752"></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.000757"></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.000765"></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.000631"></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.000722"></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.000760"></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.000744"></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.000665"></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.000625"></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.000516"></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.000636"></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.000532"></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.000626"></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.000539"></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.000644"></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.000562"></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.000700"></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.000716"></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.000585"></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.000526"></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.000624"></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.000635"></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.000527"></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.000569"></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.000687"></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.000607"></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.000552"></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.000676"></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.000560"></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.000607"></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.000664"></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.000684"></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.000671"></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.000652"></testcase>
<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.000599"></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.000670"></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.000678"></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.000745"></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.000594"></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.000625"></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.002340"></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.000612"></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.000784"></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.000621"></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.000987"></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.000978"></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.000941"></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.000936"></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.000920"></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.000895"></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.000959"></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.000821"></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.000811"></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.000964"></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.001574"></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.001157"></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.001198"></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.001055"></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.001113"></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.001038"></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.001009"></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.000925"></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.000979"></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.001438"></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.000854"></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.000981"></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.000992"></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.001258"></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.001885"></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.001235"></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.001214"></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.001385"></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.002903"></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.001001"></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.000702"></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.000851"></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.000885"></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.000868"></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.000790"></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.000736"></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.000693"></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.000826"></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.000780"></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.000709"></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.000727"></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.000802"></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.000696"></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.000636"></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.000772"></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.000699"></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.000630"></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.000663"></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.000594"></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.000711"></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.000742"></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.000652"></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.000634"></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.000669"></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.000743"></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.000668"></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.000978"></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.000959"></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.000968"></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.001003"></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.000901"></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.000901"></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.000751"></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.000963"></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.001026"></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.002924"></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.000851"></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.001176"></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.000811"></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.000712"></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.001359"></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.000760"></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.001113"></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.000944"></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.001719"></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.001069"></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.000935"></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.000920"></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.000909"></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.000865"></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.000661"></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.000650"></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.000672"></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.000664"></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.000670"></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.000686"></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.000651"></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.000654"></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.000671"></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.000692"></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.000666"></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.000691"></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.000651"></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.000722"></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.000767"></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.000718"></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.000714"></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.002233"></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.000671"></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.000619"></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.000633"></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.000691"></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.000651"></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.000668"></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.000629"></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.000650"></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.000931"></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.000941"></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.000726"></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.000686"></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.000700"></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.000655"></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.000676"></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.000879"></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.002601"></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.000963"></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.000853"></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.000813"></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.001090"></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.000821"></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.001087"></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.000803"></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.000627"></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.000614"></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.000608"></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.000591"></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.000594"></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.001565"></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.000617"></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.000576"></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.000596"></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.000584"></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.001485"></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.002439"></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.000640"></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.000652"></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.000633"></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.000637"></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.000642"></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.000616"></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.000611"></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="4.117461"></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.000739"></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.000604"></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.000674"></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.000606"></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.001143"></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.000609"></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.000631"></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.000926"></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.000604"></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.000611"></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.000763"></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.000655"></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.000650"></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.000648"></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.000928"></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.000655"></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.000682"></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.000718"></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.000709"></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.000705"></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.000714"></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.000710"></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.000743"></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.000683"></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.000669"><skipped/></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.000728"></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.001007"></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.000673"></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.000720"></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.000701"></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.000616"></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.000728"></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.000703"></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.000693"></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.002311"></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.000811"></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.000811"></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.000578"></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.000567"></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.000633"></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.000577"></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.000563"></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.000663"></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.000613"></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.000576"></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.000555"></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.000594"></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.000610"></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.000582"></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.000643"></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.000636"></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.000546"></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.000554"></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.000629"></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.000624"></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.000557"></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.000612"></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.000608"></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.000569"></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.000597"></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.000650"></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.000556"></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.000612"></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.000561"></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.000722"></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.000713"></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.000695"></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.000639"></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.000638"></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.000572"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto#encrypt &amp; #decrypt encrypts and decrypts a non-empty string" file="./spec/unit/util/crypto_spec.rb" time="0.000804"></testcase>
<testcase classname="spec.unit.util.crypto_spec" name="Ably::Util::Crypto#encrypt &amp; #decrypt encrypts and decrypts an empty string" file="./spec/unit/util/crypto_spec.rb" time="0.000842"></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.000686"></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.000684"></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.000757"></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.000719"></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.000619"></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.000725"></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.001885"></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.001117"></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.000986"></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.000709"></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.000760"></testcase>
<testcase classname="spec.unit.models.channel_occupancy_spec" name="Ably::Models::ChannelOccupancy#metrics should return attributes" file="./spec/unit/models/channel_occupancy_spec.rb" time="0.000613"></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.000587"></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.000631"></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.000625"></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.000615"></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.000564"></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.000543"></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.000547"></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.000583"></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.000600"></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.000541"></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.000558"></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.000587"></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.000582"></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.000544"></testcase>
</testsuite>
