I'm not sure we need `run_planned` and `finazlie_planned` variants at all, as you can't plan just run, or just finalize phase. You just plan the action. Instead, what I think we need is `assert_actoin_self_planned(input)` to make sure that the plan_self was called with the right args (when we need that). It can be just special case for `assert_action_planned` with `planned_action_class` set to `action.actoin_class`