/**
  * @depends testCreateAndGetEmailMessageActivityById
  */
 public function testRequiredAttributes()
 {
     $emailMessageActivity = new EmailMessageActivity();
     $this->assertFalse($emailMessageActivity->save());
     $errors = $emailMessageActivity->getErrors();
     $this->assertNotEmpty($errors);
     $this->assertCount(2, $errors);
     $this->assertArrayHasKey('type', $errors);
     $this->assertEquals('Type cannot be blank.', $errors['type'][0]);
     $this->assertArrayHasKey('quantity', $errors);
     $this->assertEquals('Quantity cannot be blank.', $errors['quantity'][0]);
     $emailMessageActivity->type = EmailMessageActivity::TYPE_CLICK;
     $emailMessageActivity->quantity = 5;
     $emailMessageUrl = new EmailMessageUrl();
     $emailMessageUrl->url = 'http://www.example.com';
     $emailMessageActivity->emailMessageUrl = $emailMessageUrl;
     $this->assertTrue($emailMessageActivity->save());
     $id = $emailMessageActivity->id;
     unset($emailMessageActivity);
     $emailMessageActivity = EmailMessageActivity::getById($id);
     $this->assertEquals(EmailMessageActivity::TYPE_CLICK, $emailMessageActivity->type);
     $this->assertEquals(5, $emailMessageActivity->quantity);
     $this->assertEquals('http://www.example.com', $emailMessageActivity->emailMessageUrl->url);
 }
 /**
  * @return \EmailMessageActivity
  */
 protected function createSpamEmailMessageActivity()
 {
     $emailMessageActivity = new EmailMessageActivity();
     $emailMessageActivity->type = EmailMessageActivity::TYPE_SPAM;
     $emailMessageActivity->quantity = 10;
     $emailMessageActivity->save();
     return $emailMessageActivity;
 }