state pattern with rspec