public function testHasOneSideValidate() { $mock = Mock::read(1); $mock->name = 'modified'; $mock->Mockdependent->name = ''; /* * Mockdependent->nameはバリデーションエラー * saveAtomic()はsave()に失敗するとrollbackを行う */ $mock->saveAtomic(); $subject = BaseRecord::whereAll('mocks', ['where' => ['field' => 'id', 'comparision' => '=', 'value' => 1]]); $dependent = BaseRecord::whereAll('mockdependents', ['where' => ['field' => 'id', 'comparision' => '=', 'value' => 1]]); /* * validationエラーが起こった場合 */ $this->assertEquals('foo', $subject->fetch()['name']); $this->assertEquals('bar', $dependent->fetch()['name']); $this->assertEquals('name error', Mock::flashError()); $mock->name = 'modified'; $mock->Mockdependent->name = 'modified'; $mock->saveAtomic(); $subject = BaseRecord::whereAll('mocks', ['where' => ['field' => 'id', 'comparision' => '=', 'value' => 1]]); $dependent = BaseRecord::whereAll('mockdependents', ['where' => ['field' => 'id', 'comparision' => '=', 'value' => 1]]); /* * validationエラーが起こらなかった場合 */ $this->assertEquals('modified', $subject->fetch()['name']); $this->assertEquals('modified', $dependent->fetch()['name']); $this->assertEquals(null, Mock::flashError()); }
public function testRead() { $mock = Mock::read(1); $this->assertEquals('three', $mock->Mockdependent[0]->name); $this->assertEquals('two', $mock->Mockdependent[1]->name); $this->assertEquals(true, empty($mock->Mockdependent[2])); }
public function testUpdateAll() { $record = Mock::create(['name' => 'new']); $this->assertEquals(true, BaseRecord::updateAll(Mock::tableName(), ['name' => 'modified'], $record->id)); /* * BaseRecord::updateAllはオブジェクトをIdentityMapに登録しないのでNotEqual */ $this->assertNotEquals('modified', Mock::read($record->id)->name); }
public function testSetAndGet() { $record1 = Mock::read(1); $record2 = Mock::read(2); $record3 = Mock::read(3); IdentityMap::set(get_class($record1), $record1->id, $record1); IdentityMap::set(get_class($record2), $record2->id, $record2); IdentityMap::set(get_class($record3), $record3->id, $record3); $this->assertEquals($record1, IdentityMap::get(get_class($record1), $record1->id)); $this->assertEquals($record2, IdentityMap::get(get_class($record2), $record2->id)); $this->assertEquals($record3, IdentityMap::get(get_class($record3), $record3->id)); }