$createdusers = core_user_external::create_users(array($user1));
}
+ /**
+ * Test create_users with invalid parameters
+ *
+ * @dataProvider data_create_users_invalid_parameter
+ * @param array $data User data to attempt to register.
+ * @param string $expectmessage Expected exception message.
+ */
+ public function test_create_users_invalid_parameter(array $data, $expectmessage) {
+ global $USER, $CFG, $DB;
+
+ $this->resetAfterTest(true);
+ $this->assignUserCapability('moodle/user:create', SYSCONTEXTID);
+
+ $this->expectException('invalid_parameter_exception');
+ $this->expectExceptionMessage($expectmessage);
+
+ core_user_external::create_users(array($data));
+ }
+
+ /**
+ * Data provider for {@link self::test_create_users_invalid_parameter()}.
+ *
+ * @return array
+ */
+ public function data_create_users_invalid_parameter() {
+ return [
+ 'blank_username' => [
+ 'data' => [
+ 'username' => '',
+ 'firstname' => 'Foo',
+ 'lastname' => 'Bar',
+ 'email' => 'foobar@example.com',
+ 'createpassword' => 1,
+ ],
+ 'expectmessage' => 'The field username cannot be blank',
+ ],
+ 'blank_firtname' => [
+ 'data' => [
+ 'username' => 'foobar',
+ 'firstname' => "\t \n",
+ 'lastname' => 'Bar',
+ 'email' => 'foobar@example.com',
+ 'createpassword' => 1,
+ ],
+ 'expectmessage' => 'The field firstname cannot be blank',
+ ],
+ 'blank_lastname' => [
+ 'data' => [
+ 'username' => 'foobar',
+ 'firstname' => '0',
+ 'lastname' => ' ',
+ 'email' => 'foobar@example.com',
+ 'createpassword' => 1,
+ ],
+ 'expectmessage' => 'The field lastname cannot be blank',
+ ],
+ 'invalid_email' => [
+ 'data' => [
+ 'username' => 'foobar',
+ 'firstname' => 'Foo',
+ 'lastname' => 'Bar',
+ 'email' => '@foobar',
+ 'createpassword' => 1,
+ ],
+ 'expectmessage' => 'Email address is invalid',
+ ],
+ 'missing_password' => [
+ 'data' => [
+ 'username' => 'foobar',
+ 'firstname' => 'Foo',
+ 'lastname' => 'Bar',
+ 'email' => 'foobar@example.com',
+ ],
+ 'expectmessage' => 'Invalid password: you must provide a password, or set createpassword',
+ ],
+ ];
+ }
+
/**
* Test delete_users
*/