49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
// ©AngelaMos | 2026
|
|
// registry_test.go
|
|
|
|
package parser
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/CarterPerez-dev/bomber/pkg/types"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type stubParser struct {
|
|
ecosystem types.Ecosystem
|
|
detected bool
|
|
}
|
|
|
|
func (s *stubParser) Detect(string) bool { return s.detected }
|
|
func (s *stubParser) Parse(string) (*types.DependencyGraph, error) { return nil, nil }
|
|
func (s *stubParser) Ecosystem() types.Ecosystem { return s.ecosystem }
|
|
|
|
func TestRegistryDetect(t *testing.T) {
|
|
reg := NewRegistry()
|
|
goParser := &stubParser{ecosystem: types.EcosystemGo, detected: true}
|
|
nodeParser := &stubParser{ecosystem: types.EcosystemNode, detected: false}
|
|
|
|
reg.Register(goParser)
|
|
reg.Register(nodeParser)
|
|
|
|
detected := reg.Detect("some/dir")
|
|
require.Len(t, detected, 1)
|
|
assert.Equal(t, types.EcosystemGo, detected[0].Ecosystem())
|
|
}
|
|
|
|
func TestRegistryDetectEmpty(t *testing.T) {
|
|
reg := NewRegistry()
|
|
detected := reg.Detect("some/dir")
|
|
assert.Empty(t, detected)
|
|
}
|
|
|
|
func TestRegistryAll(t *testing.T) {
|
|
reg := NewRegistry()
|
|
reg.Register(&stubParser{ecosystem: types.EcosystemGo})
|
|
reg.Register(&stubParser{ecosystem: types.EcosystemNode})
|
|
|
|
assert.Len(t, reg.All(), 2)
|
|
}
|