HMAC::update fails at runtime when nil is passed in as a parameter with the following error: The underlying hash algorithm has not yet been initialized. So, the secret access key should always be passed in to the Signature class.
The code was connecting to the passed in endpoint, but the signature was build on the default host (mws.amazonservices.com) Also, while at it I changed the default host to what the documentation states as being the endpoint for US. Unit tests were fixed accordingly.
…and a refator
…lose to working