Ejemplo n.º 1
0
 /**
  * Test badges assertion generated when a badge is issued.
  */
 public function test_badges_assertion()
 {
     $this->preventResetByRollback();
     // Messaging is not compatible with transactions.
     $badge = new badge($this->coursebadge);
     $this->assertFalse($badge->is_issued($this->user->id));
     $criteria_overall = award_criteria::build(array('criteriatype' => BADGE_CRITERIA_TYPE_OVERALL, 'badgeid' => $badge->id));
     $criteria_overall->save(array('agg' => BADGE_CRITERIA_AGGREGATION_ANY));
     $criteria_overall1 = award_criteria::build(array('criteriatype' => BADGE_CRITERIA_TYPE_PROFILE, 'badgeid' => $badge->id));
     $criteria_overall1->save(array('agg' => BADGE_CRITERIA_AGGREGATION_ALL, 'field_address' => 'address'));
     $this->user->address = 'Test address';
     $sink = $this->redirectEmails();
     user_update_user($this->user, false);
     $this->assertCount(1, $sink->get_messages());
     $sink->close();
     // Check if badge is awarded.
     $this->assertDebuggingCalled('Error baking badge image!');
     $awards = $badge->get_awards();
     $this->assertCount(1, $awards);
     // Get assertion.
     $award = reset($awards);
     $assertion = new core_badges_assertion($award->uniquehash);
     $testassertion = $this->assertion;
     // Make sure JSON strings have the same structure.
     $this->assertStringMatchesFormat($testassertion->badge, json_encode($assertion->get_badge_assertion()));
     $this->assertStringMatchesFormat($testassertion->class, json_encode($assertion->get_badge_class()));
     $this->assertStringMatchesFormat($testassertion->issuer, json_encode($assertion->get_issuer()));
 }
Ejemplo n.º 2
0
 public function test_badge_awards()
 {
     $badge = new badge($this->badgeid);
     $user1 = $this->getDataGenerator()->create_user();
     $badge->issue($user1->id, true);
     $this->assertTrue($badge->is_issued($user1->id));
     $user2 = $this->getDataGenerator()->create_user();
     $badge->issue($user2->id, true);
     $this->assertTrue($badge->is_issued($user2->id));
     $this->assertCount(2, $badge->get_awards());
 }