MCPcopy Index your code
hub / github.com/php/frankenphp / TestClassParserGoTypeMismatch

Function TestClassParserGoTypeMismatch

internal/extgen/classparser_test.go:513–641  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

511}
512
513func TestClassParserGoTypeMismatch(t *testing.T) {
514 tests := []struct {
515 name string
516 input string
517 expectedClasses int
518 expectedMethods int
519 hasWarning bool
520 }{
521 {
522 name: "method parameter count mismatch should be rejected",
523 input: `package main
524
525//export_php:class TestClass
526type TestClass struct {
527 Name string
528}
529
530//export_php:method TestClass::countMismatch(string $name, int $count): string
531func (tc *TestClass) countMismatch(name *C.zend_string) unsafe.Pointer {
532 return nil
533}`,
534 expectedClasses: 1,
535 expectedMethods: 0,
536 hasWarning: true,
537 },
538 {
539 name: "method parameter type mismatch should be rejected",
540 input: `package main
541
542//export_php:class TestClass
543type TestClass struct {
544 Name string
545}
546
547//export_php:method TestClass::typeMismatch(string $name, int $count): string
548func (tc *TestClass) typeMismatch(name *C.zend_string, count string) unsafe.Pointer {
549 return nil
550}`,
551 expectedClasses: 1,
552 expectedMethods: 0,
553 hasWarning: true,
554 },
555 {
556 name: "method return type mismatch should be rejected",
557 input: `package main
558
559//export_php:class TestClass
560type TestClass struct {
561 Name string
562}
563
564//export_php:method TestClass::returnMismatch(string $name): int
565func (tc *TestClass) returnMismatch(name *C.zend_string) string {
566 return ""
567}`,
568 expectedClasses: 1,
569 expectedMethods: 0,
570 hasWarning: true,

Callers

nothing calls this directly

Calls 1

parseMethod · 0.95

Tested by

no test coverage detected