Minor issue: I'd prefer the mock data to be present in a fixture file (e.g. in YAML format) and load it from the file. Such a huge hash makes the test less readable.