public function testPassWhenAllFieldsAreTheSame() { $writer_field_values = []; foreach ($this->writer->getFields() as $field_name) { $writer_field_values[$field_name] = $this->writer->getFieldValue($field_name); } $new_writer = $this->pool->produce(Writer::class, $writer_field_values, false); $new_writer_field_values = []; foreach ($new_writer->getFields() as $field_name) { $new_writer_field_values[$field_name] = $new_writer->getFieldValue($field_name); } $this->assertEquals($new_writer_field_values, $writer_field_values); $this->assertTrue($new_writer->is($this->writer)); }
public function testCopyWithoutSave() { $writer_copy = $this->writer->copy(); $this->assertInstanceOf(Writer::class, $writer_copy); $this->assertFalse($writer_copy->isLoaded()); $this->assertEmpty($writer_copy->getId()); foreach ($writer_copy->getFields() as $field) { if ($writer_copy->isPrimaryKey($field)) { continue; } $old_writer_value = $this->writer->getFieldValue($field); $writer_copy_value = $writer_copy->getFieldValue($field); if ($old_writer_value instanceof DateValueInterface && $writer_copy_value instanceof DateValueInterface || $old_writer_value instanceof DateTimeValueInterface && $writer_copy_value instanceof DateTimeValueInterface) { $this->assertSame($old_writer_value->getTimestamp(), $writer_copy_value->getTimestamp()); } else { $this->assertSame($old_writer_value, $writer_copy_value); } } }