A hash of params being required really doesn't do much for you.  I can call the method with an empty hash and bypass the ArgumentError.  There would need to be some error trapping in the method to make sure that you got the key/values actually needed.

I would at least have unit tests to make sure that the expected keys are available.  I suppose testing for the type of the value wouldn't hurt either.