Files
frankenphp/internal/extgen/utils_namespace_test.go
Kévin Dunglas 5514491a18 feat(extgen): support for mixed type (#1913)
* feat(extgent): support for mixed type

* refactor: use unsafe.Pointer

* Revert "refactor: use unsafe.Pointer"

This reverts commit 8a0b9c1beb.

* fix docs

* fix docs

* cleanup template

* fix template

* fix tests
2025-10-09 14:10:45 +02:00

61 lines
1.3 KiB
Go

package extgen
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestNamespacedName(t *testing.T) {
tests := []struct {
name string
namespace string
itemName string
expected string
}{
{
name: "no namespace",
namespace: "",
itemName: "TestItem",
expected: "TestItem",
},
{
name: "single level namespace",
namespace: "MyNamespace",
itemName: "TestItem",
expected: "MyNamespace_TestItem",
},
{
name: "multi level namespace",
namespace: `Go\Extension`,
itemName: "TestItem",
expected: "Go_Extension_TestItem",
},
{
name: "deep namespace",
namespace: `Very\Deep\Nested\Namespace`,
itemName: "MyItem",
expected: "Very_Deep_Nested_Namespace_MyItem",
},
{
name: "function name",
namespace: `Go\Extension`,
itemName: "multiply",
expected: "Go_Extension_multiply",
},
{
name: "class name",
namespace: `Go\Extension`,
itemName: "MySuperClass",
expected: "Go_Extension_MySuperClass",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := NamespacedName(tt.namespace, tt.itemName)
require.Equal(t, tt.expected, result, "NamespacedName(%q, %q) = %q, expected %q", tt.namespace, tt.itemName, result, tt.expected)
})
}
}