示例#1
0
 public function testGetModelChanges()
 {
     $model = new ModelState();
     $this->assertEquals([], $model->getModelChanges());
     $model->A = 1;
     $model->B = 2;
     $this->assertEquals(["A" => 1, "B" => 2], $model->getModelChanges());
     $model->takeChangeSnapshot();
     $this->assertEquals([], $model->getModelChanges());
     $model->A = 2;
     $this->assertEquals(["A" => 2], $model->getModelChanges());
 }
示例#2
0
 public function testGetModelChanges()
 {
     $model = new ModelState();
     $this->assertEquals([], $model->getModelChanges());
     $model->A = 1;
     $model->B = 2;
     $model->C = null;
     $this->assertEquals(["A" => 1, "B" => 2], $model->getModelChanges());
     $model->takeChangeSnapshot();
     $this->assertEquals([], $model->getModelChanges());
     $model->A = 2;
     $this->assertEquals(["A" => 2], $model->getModelChanges());
     $model->takeChangeSnapshot();
     // Ensure that setting a value that is not set to null results in no change
     $model->C = null;
     $this->assertEquals([], $model->getModelChanges());
     $model->C = 3;
     $model->takeChangeSnapshot();
     // Remove C by setting to null
     $model->C = null;
     $this->assertEquals(['C' => null], $model->getModelChanges());
     $model->takeChangeSnapshot();
     $model->C = 3;
     $model->takeChangeSnapshot();
     // Remove C via unset
     unset($model->C);
     $this->assertEquals(['C' => null], $model->getModelChanges());
 }