Exemplo n.º 1
0
 /**
  * MarkClean can also be used to remove a flagged dirty member from the 
  * list by giving it the members name. This method always returns a fluen
  * interface.
  *
  * @return null
  */
 public function testMarkCleanDirtyMember()
 {
     $dirty = array('member_1', 'member_2', 'member_3');
     $this->state->markDirty($dirty[0]);
     $this->state->markDirty($dirty[1]);
     $this->state->markDirty($dirty[2]);
     $this->assertTrue($this->state->isDirty());
     $this->assertTrue($this->state->isDirtyMember($dirty[0]));
     $this->assertTrue($this->state->isDirtyMember($dirty[1]));
     $this->assertTrue($this->state->isDirtyMember($dirty[2]));
     $this->assertSame($this->state, $this->state->markClean($dirty[0]));
     $this->assertTrue($this->state->isDirty());
     $this->assertFalse($this->state->isDirtyMember($dirty[0]));
     $this->assertTrue($this->state->isDirtyMember($dirty[1]));
     $this->assertTrue($this->state->isDirtyMember($dirty[2]));
     $this->assertSame($this->state, $this->state->markClean($dirty[1]));
     $this->assertTrue($this->state->isDirty());
     $this->assertFalse($this->state->isDirtyMember($dirty[0]));
     $this->assertFalse($this->state->isDirtyMember($dirty[1]));
     $this->assertTrue($this->state->isDirtyMember($dirty[2]));
     $this->assertSame($this->state, $this->state->markClean($dirty[2]));
     $this->assertFalse($this->state->isDirty());
     $this->assertFalse($this->state->isDirtyMember($dirty[0]));
     $this->assertFalse($this->state->isDirtyMember($dirty[1]));
     $this->assertFalse($this->state->isDirtyMember($dirty[2]));
     /* when removing the last dirty item we enter a weird state
      * where the state is dirty but isDirty is false because we made 
      * changes but cleared them out
      */
     $this->assertEquals('dirty', $this->state->getState());
 }