Use shoulda-matchers gem and refactor

makes the spec more readable.