def METHOD_NAME(self):
    current_day, offset, target_day, upgrade_deadline = self._get_dates()  # lint-amnesty, pylint: disable=unused-variable
    user = UserFactory.create()
    schedules = [
        self._schedule_factory(
            enrollment__user=user,
            enrollment__course__id=CourseLocator('edX', 'toy', f'Course{i}'),
            enrollment__mode=CourseMode.VERIFIED if i in (0, 3) else CourseMode.AUDIT,
        )
        for i in range(5)
    ]
    sent_messages = []
    with patch.object(self.task, 'async_send_task') as mock_schedule_send:
        mock_schedule_send.apply_async = lambda args, *_a, **_kw: sent_messages.append(args[1])
        self.task().apply(kwargs=dict(
            site_id=self.site_config.site.id, target_day_str=serialize(target_day), day_offset=offset,
            bin_num=self._calculate_bin_for_user(user),
        ))
        messages = [Message.from_string(m) for m in sent_messages]
        assert len(messages) == 1
        message = messages[0]
        self.assertCountEqual(
            message.context['course_ids'],
            [str(schedules[i].enrollment.course.id) for i in (1, 2, 4)]
        )