(t *testing.T)
| 559 | } |
| 560 | |
| 561 | func TestNamespace(t *testing.T) { |
| 562 | suite := setupTest(t) |
| 563 | |
| 564 | sourceFile := filepath.Join("..", "..", "testdata", "integration", "namespace.go") |
| 565 | sourceFile, err := filepath.Abs(sourceFile) |
| 566 | require.NoError(t, err) |
| 567 | defer suite.cleanupGeneratedFiles(sourceFile) |
| 568 | |
| 569 | targetFile, err := suite.createGoModule(sourceFile) |
| 570 | require.NoError(t, err) |
| 571 | |
| 572 | err = suite.runExtensionInit(targetFile) |
| 573 | require.NoError(t, err) |
| 574 | |
| 575 | _, err = suite.compileFrankenPHP(filepath.Dir(targetFile)) |
| 576 | require.NoError(t, err) |
| 577 | |
| 578 | err = suite.verifyPHPSymbols( |
| 579 | []string{`\\TestIntegration\\Extension\\greet`}, |
| 580 | []string{`\\TestIntegration\\Extension\\Person`}, |
| 581 | []string{`\\TestIntegration\\Extension\\NAMESPACE_VERSION`}, |
| 582 | ) |
| 583 | require.NoError(t, err, "all namespaced symbols should be accessible from PHP") |
| 584 | |
| 585 | err = suite.verifyFunctionBehavior(`<?php |
| 586 | use TestIntegration\Extension; |
| 587 | |
| 588 | if (Extension\NAMESPACE_VERSION !== "1.0.0") { |
| 589 | echo "FAIL: NAMESPACE_VERSION expected '1.0.0', got '" . Extension\NAMESPACE_VERSION . "'"; |
| 590 | exit(1); |
| 591 | } |
| 592 | |
| 593 | $greeting = Extension\greet("Alice"); |
| 594 | if ($greeting !== "Hello, Alice!") { |
| 595 | echo "FAIL: greet('Alice') expected 'Hello, Alice!', got '$greeting'"; |
| 596 | exit(1); |
| 597 | } |
| 598 | |
| 599 | $greeting = Extension\greet(""); |
| 600 | if ($greeting !== "Hello, !") { |
| 601 | echo "FAIL: greet('') expected 'Hello, !', got '$greeting'"; |
| 602 | exit(1); |
| 603 | } |
| 604 | |
| 605 | if (Extension\Person::DEFAULT_AGE !== 18) { |
| 606 | echo "FAIL: Person::DEFAULT_AGE expected 18, got " . Extension\Person::DEFAULT_AGE; |
| 607 | exit(1); |
| 608 | } |
| 609 | |
| 610 | $person = new Extension\Person(); |
| 611 | $person->setName("Bob"); |
| 612 | $person->setAge(25); |
| 613 | |
| 614 | if ($person->getName() !== "Bob") { |
| 615 | echo "FAIL: Person getName expected 'Bob', got '" . $person->getName() . "'"; |
| 616 | exit(1); |
| 617 | } |
| 618 |
nothing calls this directly
no test coverage detected