/**
  * @param AbstractArchivableCrudObject $subject
  */
 public function assertCanArchive(AbstractArchivableCrudObject $subject)
 {
     $this->assertNotEmpty($subject->{AbstractCrudObject::FIELD_ID});
     $subject->archive();
     /** @var AbstractArchivableCrudObject $mirror */
     $mirror = $this->getEmptyClone($subject);
     $mirror->read(array($mirror->getStatusFieldName()));
     $this->assertEquals(AbstractArchivableCrudObject::STATUS_ARCHIVED, $mirror->{$mirror->getStatusFieldName()});
     $subject->read(array($subject->getStatusFieldName()));
 }
 /**
  * @param AbstractArchivableCrudObject $subject
  */
 public function assertCanArchive(AbstractArchivableCrudObject $subject)
 {
     $this->assertNotEmpty($subject->{AbstractCrudObject::FIELD_ID});
     $subject->archive();
     if ($subject instanceof AbstractArchivableCrudObject) {
         $this->assertArchivableCrudObjectStatus($subject, AbstractArchivableCrudObject::STATUS_ARCHIVED);
     }
 }