Message model, controller and related tests