MCPcopy Create free account
hub / github.com/php/frankenphp / TestNamespace

Function TestNamespace

internal/extgen/integration_test.go:561–649  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

559}
560
561func 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
586use TestIntegration\Extension;
587
588if (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");
594if ($greeting !== "Hello, Alice!") {
595 echo "FAIL: greet('Alice') expected 'Hello, Alice!', got '$greeting'";
596 exit(1);
597}
598
599$greeting = Extension\greet("");
600if ($greeting !== "Hello, !") {
601 echo "FAIL: greet('') expected 'Hello, !', got '$greeting'";
602 exit(1);
603}
604
605if (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
614if ($person->getName() !== "Bob") {
615 echo "FAIL: Person getName expected 'Bob', got '" . $person->getName() . "'";
616 exit(1);
617}
618

Callers

nothing calls this directly

Calls 7

setupTestFunction · 0.85
cleanupGeneratedFilesMethod · 0.80
createGoModuleMethod · 0.80
runExtensionInitMethod · 0.80
compileFrankenPHPMethod · 0.80
verifyPHPSymbolsMethod · 0.80

Tested by

no test coverage detected