/** * Test sync_users method. */ public function test_sync_users() { global $CFG, $DB; for ($i = 1; $i <= 2; $i++) { $muser = ['auth' => 'oidc', 'deleted' => '0', 'mnethostid' => $CFG->mnet_localhost_id, 'username' => '00000000-0000-0000-0000-00000000000' . $i, 'firstname' => 'Test', 'lastname' => 'User' . $i, 'email' => 'testuser' . $i . '@example.onmicrosoft.com', 'lang' => 'en']; $DB->insert_record('user', (object) $muser); $token = ['oidcuniqid' => '00000000-0000-0000-0000-00000000000' . $i, 'authcode' => '000', 'username' => 'testuser' . $i . '@example.onmicrosoft.com', 'scope' => 'test', 'resource' => \local_o365\rest\azuread::get_resource(), 'token' => '000', 'expiry' => '9999999999', 'refreshtoken' => 'fsdfsdf' . $i, 'idtoken' => 'sdfsdfsdf' . $i]; $DB->insert_record('auth_oidc_token', (object) $token); } $response = ['value' => [$this->get_aad_userinfo(1), $this->get_aad_userinfo(3)]]; $response = json_encode($response); $httpclient = new \local_o365\tests\mockhttpclient(); $httpclient->set_response($response); $apiclient = new \local_o365\rest\azuread($this->get_mock_token(), $httpclient); $aadusers = $apiclient->get_users(); $apiclient->sync_users($aadusers['value']); $existinguser = ['auth' => 'oidc', 'username' => '*****@*****.**']; $this->assertTrue($DB->record_exists('user', $existinguser)); $createduser = ['auth' => 'oidc', 'username' => '*****@*****.**']; $this->assertTrue($DB->record_exists('user', $createduser)); $createduser = $DB->get_record('user', $createduser); $this->assertEquals('Test', $createduser->firstname); $this->assertEquals('User3', $createduser->lastname); $this->assertEquals('*****@*****.**', $createduser->email); $this->assertEquals('Toronto', $createduser->city); $this->assertEquals('CA', $createduser->country); $this->assertEquals('Dev', $createduser->department); $this->assertEquals('en', $createduser->lang); }