<?php
namespace app\model {class FeedingHistory {}}
namespace {
require $argv[1];$name=$argv[2];$class=new \ReflectionClass('app\\p\\logic\\'.$name);$fail=[];$n=0;
$cases=[['12345678-1234-1234-1234-123456789012',true,'12345678-1234-1234-1234-123456789012'],['12345678-1234-1234-1234-123456789012',false,'12345678-1234-1234-1234-123456789012'],['short-actor',true,'short-actor'],['非UUID创建人',true,'非UUID创建人']];
// Legacy MySQL VARCHAR(32) stores the first 32 ASCII characters under the observed session mode.
$cases[0][2]=substr($cases[0][0],0,32);
foreach($cases as $i=>$case){$n++;if(!$class->hasMethod('normalizeCreateBy')){$fail[]='create_by_'.$i;continue;}$m=$class->getMethod('normalizeCreateBy');$m->setAccessible(true);if($m->invoke(null,$case[0],$case[1])!==$case[2])$fail[]='create_by_'.$i;}
$times=[null,'','2026-10-10 20:00:00','2026-10-10 20:00:00.000000','2024-02-29 23:59:59.123456','2024-02-29 23:59:59.1','2026-02-29 23:59:59.000000','2026-10-10 25:00:00.000000','0000-01-01 00:00:00.000000','2026-10-10T20:00:00.000000','2026-10-10 20:00:00.1234567',23];
foreach([false,true]as $dm)foreach($times as $i=>$time){$n++;$row=['create_time'=>$time,'date'=>'2010-01-01','unchanged'=>['中文',null,23]];$expected=$row;if($dm&&in_array($i,[3,4,5],true))$expected['create_time']=substr($time,0,19);if(!$class->hasMethod('normalizeReadCreateTime')){$fail[]='time_'.$dm.'_'.$i;continue;}$m=$class->getMethod('normalizeReadCreateTime');$m->setAccessible(true);if($m->invoke(null,$row,$dm)!==$expected)$fail[]='time_'.$dm.'_'.$i;}
if($class->hasMethod('normalizeReadCreateTime')){$n++;if($m->invoke(null,['no_time'=>'中文'],true)!==['no_time'=>'中文'])$fail[]='missing-time-key';}
echo json_encode(['class'=>$name,'total'=>$n,'failed'=>$fail]),"\n";exit($fail?1:0);
}
