package pipeline import ( "testing" "gitea.maximumdirect.net/eric/notarius/internal/framework/contracts" ) func TestMergerRegistryBehavior(t *testing.T) { runRegistryBehaviorTests(t, registryBehaviorCase[contracts.LegacyRawMerger]{ name: "MergerRegistry", key: "generic-merger", stage: StageMerge, wrongStage: StageExtract, newRegistry: func() any { return NewMergerRegistry() }, register: func(registry any, key string, constructor func() (contracts.LegacyRawMerger, error)) error { return registry.(*MergerRegistry).RegisterLegacyRaw(key, constructor) }, registerWithSpec: func(registry any, spec ModuleSpec, constructor func() (contracts.LegacyRawMerger, error)) error { return registry.(*MergerRegistry).RegisterLegacyRawWithSpec(spec, constructor) }, build: func(registry any, key string) (contracts.LegacyRawMerger, error) { return registry.(*MergerRegistry).BuildLegacyRaw(key) }, spec: func(registry any, key string) (ModuleSpec, bool) { return registry.(*MergerRegistry).Spec(key) }, registeredKeys: func(registry any) []string { return registry.(*MergerRegistry).RegisteredKeys() }, nilRegister: func(key string, constructor func() (contracts.LegacyRawMerger, error)) error { var registry *MergerRegistry return registry.RegisterLegacyRaw(key, constructor) }, nilBuild: func(key string) (contracts.LegacyRawMerger, error) { var registry *MergerRegistry return registry.BuildLegacyRaw(key) }, nilSpec: func(key string) (ModuleSpec, bool) { var registry *MergerRegistry return registry.Spec(key) }, nilRegisteredKey: func() []string { var registry *MergerRegistry return registry.RegisteredKeys() }, constructor: func(key string) func() (contracts.LegacyRawMerger, error) { return func() (contracts.LegacyRawMerger, error) { return registryMerger{key: key}, nil } }, moduleKey: func(module contracts.LegacyRawMerger) string { return module.Key() }, }) }