invoke(null, [ 'chk_template_one' => true, 'chk_template_two' => false, ], $expected))->toBeTrue() ->and($method->invoke(null, [ 'all' => true, 'chk_template_one' => '1', 'chk_template_two' => '0', ], $expected))->toBeTrue() ->and($method->invoke(null, [ 'chk_template_one' => true, ], $expected))->toBeFalse() ->and($method->invoke(null, [ 'chk_template_one' => true, 'chk_template_two' => false, 'chk_template_three' => true, ], $expected))->toBeFalse() ->and($method->invoke(null, [ 'chk_template_one' => true, 'chk_template_two' => 'unexpected', ], $expected))->toBeFalse(); }); test('installer requires payload keys only for rendered table controls', function () { $method = new ReflectionMethod(Installer::class, 'isTableSelectable'); expect($method->invoke(null, ['Rows' => 0]))->toBeTrue() ->and($method->invoke(null, ['Rows' => '999999']))->toBeTrue() ->and($method->invoke(null, ['Rows' => 1000000]))->toBeFalse() ->and($method->invoke(null, ['Rows' => 'unknown']))->toBeFalse() ->and($method->invoke(null, []))->toBeFalse(); });