forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDL-69166 core_payment: archiving accounts, triggering events, tests
- Loading branch information
1 parent
73527fa
commit 409857a
Showing
18 changed files
with
893 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
@enrol @enrol_fee | ||
Feature: Signing up for a course with a fee enrolment method | ||
|
||
Background: | ||
Given the following "users" exist: | ||
| username | firstname | lastname | email | | ||
| teacher1 | Teacher | 1 | teacher1@example.com | | ||
| student1 | Student | 1 | student1@example.com | | ||
| manager1 | Manager | 1 | manager1@example.com | | ||
And the following "courses" exist: | ||
| fullname | shortname | format | summary | | ||
| Course 1 | C1 | topics | | | ||
And the following "course enrolments" exist: | ||
| user | course | role | | ||
| teacher1 | C1 | editingteacher | | ||
| manager1 | C1 | manager | | ||
And payment plugin "paypal" is enabled | ||
And the following "core_payment > payment accounts" exist: | ||
| name | gateways | | ||
| Account1 | paypal | | ||
And I log in as "admin" | ||
And I navigate to "Plugins > Enrolments > Manage enrol plugins" in site administration | ||
And I click on "Enable" "link" in the "Fee" "table_row" | ||
And I log out | ||
|
||
@javascript | ||
Scenario: Student can see the payment prompt on the course enrolment page | ||
When I log in as "manager1" | ||
And I am on "Course 1" course homepage | ||
And I navigate to "Users > Enrolment methods" in current page administration | ||
And I select "Fee" from the "Add method" singleselect | ||
And I set the following fields to these values: | ||
| Payment account | Account1 | | ||
| Enrol cost | 10 | | ||
| Currency | Euro | | ||
And I press "Add method" | ||
And I log out | ||
And I log in as "student1" | ||
And I am on course index | ||
And I follow "Course 1" | ||
And I should see "This course requires a payment for entry." | ||
#And I should see "Cost: EUR 10.00" # TODO for some reason behat does not "see" this text. | ||
And I press "Pay enrolment fee" | ||
And I should see "PayPal" in the "Select Payment Type" "dialogue" | ||
And I click on "Cancel" "button" in the "Select Payment Type" "dialogue" | ||
And I log out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
namespace core_payment\event; | ||
|
||
use core\event\base; | ||
use core_payment\account; | ||
|
||
/** | ||
* Class account_created | ||
* | ||
* @package core_payment | ||
* @copyright 2020 Marina Glancy | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
|
||
/** | ||
* Class account_created | ||
* | ||
* @package core_payment | ||
* @copyright 2020 Marina Glancy | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class account_created extends base { | ||
|
||
/** | ||
* Initialise event parameters. | ||
*/ | ||
protected function init() { | ||
$this->data['objecttable'] = 'payment_accounts'; | ||
$this->data['crud'] = 'c'; | ||
$this->data['edulevel'] = self::LEVEL_OTHER; | ||
} | ||
|
||
/** | ||
* Create an instance of the event and add a record snapshot | ||
* | ||
* @param account $account | ||
* @return base | ||
* @throws \coding_exception | ||
*/ | ||
public static function create_from_account(account $account) { | ||
$eventparams = [ | ||
'objectid' => $account->get('id'), | ||
'context' => $account->get_context(), | ||
'other' => ['name' => $account->get('name')] | ||
]; | ||
$event = self::create($eventparams); | ||
$event->add_record_snapshot($event->objecttable, $account->to_record()); | ||
return $event; | ||
} | ||
|
||
/** | ||
* Returns localised event name. | ||
* | ||
* @return string | ||
*/ | ||
public static function get_name() { | ||
return get_string('eventaccountcreated', 'payment'); | ||
} | ||
|
||
/** | ||
* Returns non-localised event description with id's for admin use only. | ||
* | ||
* @return string | ||
*/ | ||
public function get_description() { | ||
$name = s($this->other['name']); | ||
return "The user with id '$this->userid' created payment account with id '$this->objectid' and the name '{$name}'."; | ||
} | ||
|
||
/** | ||
* Returns relevant URL. | ||
* | ||
* @return \moodle_url | ||
*/ | ||
public function get_url() { | ||
return new \moodle_url('/payment/accounts.php'); | ||
} | ||
} |
Oops, something went wrong.