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

Function TestClassMethodsIntegration

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

Source from the content-addressed store, hash-verified

346}
347
348func TestClassMethodsIntegration(t *testing.T) {
349 suite := setupTest(t)
350
351 sourceFile := filepath.Join("..", "..", "testdata", "integration", "class_methods.go")
352 sourceFile, err := filepath.Abs(sourceFile)
353 require.NoError(t, err)
354 defer suite.cleanupGeneratedFiles(sourceFile)
355
356 targetFile, err := suite.createGoModule(sourceFile)
357 require.NoError(t, err)
358
359 err = suite.runExtensionInit(targetFile)
360 require.NoError(t, err)
361
362 _, err = suite.compileFrankenPHP(filepath.Dir(targetFile))
363 require.NoError(t, err)
364
365 err = suite.verifyPHPSymbols(
366 []string{},
367 []string{"Counter", "StringHolder"},
368 []string{},
369 )
370 require.NoError(t, err, "all classes should be accessible from PHP")
371
372 err = suite.verifyFunctionBehavior(`<?php
373$counter = new Counter();
374if ($counter->getValue() !== 0) {
375 echo "FAIL: Counter initial value expected 0, got " . $counter->getValue();
376 exit(1);
377}
378
379$counter->increment();
380if ($counter->getValue() !== 1) {
381 echo "FAIL: Counter after increment expected 1, got " . $counter->getValue();
382 exit(1);
383}
384
385$counter->decrement();
386if ($counter->getValue() !== 0) {
387 echo "FAIL: Counter after decrement expected 0, got " . $counter->getValue();
388 exit(1);
389}
390
391$counter->setValue(10);
392if ($counter->getValue() !== 10) {
393 echo "FAIL: Counter after setValue(10) expected 10, got " . $counter->getValue();
394 exit(1);
395}
396
397$newValue = $counter->addValue(5);
398if ($newValue !== 15) {
399 echo "FAIL: Counter addValue(5) expected to return 15, got $newValue";
400 exit(1);
401}
402if ($counter->getValue() !== 15) {
403 echo "FAIL: Counter value after addValue(5) expected 15, got " . $counter->getValue();
404 exit(1);
405}

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