adapters

package
v0.1.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package adapters provides language-specific behavior for test generation.

Each language has a dedicated adapter implementing the LanguageAdapter interface, handling parsing, framework selection, test generation, and validation.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseAdapter

type BaseAdapter struct {
	// contains filtered or unexported fields
}

BaseAdapter provides common functionality for all adapters

func (*BaseAdapter) GetDefaultFramework

func (b *BaseAdapter) GetDefaultFramework() string

GetDefaultFramework returns the default framework

func (*BaseAdapter) GetLanguage

func (b *BaseAdapter) GetLanguage() string

GetLanguage returns the language

func (*BaseAdapter) GetSupportedFrameworks

func (b *BaseAdapter) GetSupportedFrameworks() []string

GetSupportedFrameworks returns supported frameworks

type GoAdapter

type GoAdapter struct {
	BaseAdapter
}

GoAdapter handles Go source files

func NewGoAdapter

func NewGoAdapter() *GoAdapter

NewGoAdapter creates a new Go language adapter

func (*GoAdapter) CanHandle

func (a *GoAdapter) CanHandle(filePath string) bool

CanHandle returns true if this adapter can handle the file

func (*GoAdapter) ExtractDefinitions

func (a *GoAdapter) ExtractDefinitions(ast *models.AST) ([]*models.Definition, error)

ExtractDefinitions returns definitions from parsed AST

func (*GoAdapter) FormatTestCode

func (a *GoAdapter) FormatTestCode(code string) (string, error)

FormatTestCode formats Go test code using gofmt

func (*GoAdapter) GenerateTestPath

func (a *GoAdapter) GenerateTestPath(sourcePath string, outputDir string) string

GenerateTestPath returns the expected path for a test file

func (*GoAdapter) GetPromptTemplate

func (a *GoAdapter) GetPromptTemplate(testType string) string

GetPromptTemplate returns the prompt template for Go tests

func (*GoAdapter) ParseFile

func (a *GoAdapter) ParseFile(content string) (*models.AST, error)

ParseFile parses Go source code and extracts structure

func (*GoAdapter) RunTests

func (a *GoAdapter) RunTests(testDir string) (*models.TestResults, error)

RunTests executes Go tests and returns results

func (*GoAdapter) SelectFramework

func (a *GoAdapter) SelectFramework(projectPath string) string

SelectFramework determines the test framework to use

func (*GoAdapter) ValidateTests

func (a *GoAdapter) ValidateTests(testCode string, testPath string) error

ValidateTests checks if generated tests compile

type JavaAdapter

type JavaAdapter struct {
	BaseAdapter
}

JavaAdapter handles Java source files

func NewJavaAdapter

func NewJavaAdapter() *JavaAdapter

NewJavaAdapter creates a new Java language adapter

func (*JavaAdapter) CanHandle

func (a *JavaAdapter) CanHandle(filePath string) bool

CanHandle returns true if this adapter can handle the file

func (*JavaAdapter) ExtractDefinitions

func (a *JavaAdapter) ExtractDefinitions(ast *models.AST) ([]*models.Definition, error)

ExtractDefinitions returns definitions from parsed AST

func (*JavaAdapter) FormatTestCode

func (a *JavaAdapter) FormatTestCode(code string) (string, error)

FormatTestCode formats Java test code

func (*JavaAdapter) GenerateTestPath

func (a *JavaAdapter) GenerateTestPath(sourcePath string, outputDir string) string

GenerateTestPath returns the expected path for a test file

func (*JavaAdapter) GetPromptTemplate

func (a *JavaAdapter) GetPromptTemplate(testType string) string

GetPromptTemplate returns the prompt template for Java tests

func (*JavaAdapter) ParseFile

func (a *JavaAdapter) ParseFile(content string) (*models.AST, error)

ParseFile parses Java source code

func (*JavaAdapter) RunTests

func (a *JavaAdapter) RunTests(testDir string) (*models.TestResults, error)

RunTests executes Java tests and returns results

func (*JavaAdapter) SelectFramework

func (a *JavaAdapter) SelectFramework(projectPath string) string

SelectFramework determines the test framework to use

func (*JavaAdapter) ValidateTests

func (a *JavaAdapter) ValidateTests(testCode string, testPath string) error

ValidateTests checks if generated tests have valid syntax

type JavaScriptAdapter

type JavaScriptAdapter struct {
	BaseAdapter
}

JavaScriptAdapter handles JavaScript and TypeScript source files

func NewJavaScriptAdapter

func NewJavaScriptAdapter() *JavaScriptAdapter

NewJavaScriptAdapter creates a new JavaScript/TypeScript language adapter

func (*JavaScriptAdapter) CanHandle

func (a *JavaScriptAdapter) CanHandle(filePath string) bool

CanHandle returns true if this adapter can handle the file

func (*JavaScriptAdapter) ExtractDefinitions

func (a *JavaScriptAdapter) ExtractDefinitions(ast *models.AST) ([]*models.Definition, error)

ExtractDefinitions returns definitions from parsed AST

func (*JavaScriptAdapter) FormatTestCode

func (a *JavaScriptAdapter) FormatTestCode(code string) (string, error)

FormatTestCode formats JavaScript/TypeScript test code

func (*JavaScriptAdapter) GenerateTestPath

func (a *JavaScriptAdapter) GenerateTestPath(sourcePath string, outputDir string) string

GenerateTestPath returns the expected path for a test file

func (*JavaScriptAdapter) GetPromptTemplate

func (a *JavaScriptAdapter) GetPromptTemplate(testType string) string

GetPromptTemplate returns the prompt template for JavaScript tests

func (*JavaScriptAdapter) ParseFile

func (a *JavaScriptAdapter) ParseFile(content string) (*models.AST, error)

ParseFile parses JavaScript/TypeScript source code

func (*JavaScriptAdapter) RunTests

func (a *JavaScriptAdapter) RunTests(testDir string) (*models.TestResults, error)

RunTests executes JavaScript tests and returns results

func (*JavaScriptAdapter) SelectFramework

func (a *JavaScriptAdapter) SelectFramework(projectPath string) string

SelectFramework determines the test framework to use

func (*JavaScriptAdapter) ValidateTests

func (a *JavaScriptAdapter) ValidateTests(testCode string, testPath string) error

ValidateTests checks if generated tests have valid syntax

type LanguageAdapter

type LanguageAdapter interface {
	// CanHandle returns true if this adapter handles the given file
	CanHandle(filePath string) bool

	// GetLanguage returns the language this adapter handles
	GetLanguage() string

	// GetDefaultFramework returns the default test framework for this language
	GetDefaultFramework() string

	// GetSupportedFrameworks returns all supported test frameworks
	GetSupportedFrameworks() []string

	// ParseFile parses source code and returns an AST
	ParseFile(content string) (*models.AST, error)

	// ExtractDefinitions extracts functions and methods from parsed AST
	ExtractDefinitions(ast *models.AST) ([]*models.Definition, error)

	// SelectFramework determines the test framework to use
	SelectFramework(projectPath string) string

	// GenerateTestPath returns the expected path for a test file
	GenerateTestPath(sourcePath string, outputDir string) string

	// FormatTestCode formats the generated test code
	FormatTestCode(code string) (string, error)

	// GetPromptTemplate returns the prompt template for the given test type
	GetPromptTemplate(testType string) string

	// ValidateTests checks if generated tests compile/parse correctly
	ValidateTests(testCode string, testPath string) error

	// RunTests executes tests and returns results
	RunTests(testDir string) (*models.TestResults, error)
}

LanguageAdapter defines the interface for language-specific test generation

func NewCPPAdapter added in v0.1.12

func NewCPPAdapter() LanguageAdapter

func NewCSharpAdapter added in v0.1.12

func NewCSharpAdapter() LanguageAdapter

func NewKotlinAdapter added in v0.1.12

func NewKotlinAdapter() LanguageAdapter

func NewPHPAdapter added in v0.1.12

func NewPHPAdapter() LanguageAdapter

func NewRubyAdapter added in v0.1.12

func NewRubyAdapter() LanguageAdapter

type PythonAdapter

type PythonAdapter struct {
	BaseAdapter
}

PythonAdapter handles Python source files

func NewPythonAdapter

func NewPythonAdapter() *PythonAdapter

NewPythonAdapter creates a new Python language adapter

func (*PythonAdapter) CanHandle

func (a *PythonAdapter) CanHandle(filePath string) bool

CanHandle returns true if this adapter can handle the file

func (*PythonAdapter) ExtractDefinitions

func (a *PythonAdapter) ExtractDefinitions(ast *models.AST) ([]*models.Definition, error)

ExtractDefinitions returns definitions from parsed AST

func (*PythonAdapter) FormatTestCode

func (a *PythonAdapter) FormatTestCode(code string) (string, error)

FormatTestCode formats Python test code

func (*PythonAdapter) GenerateTestPath

func (a *PythonAdapter) GenerateTestPath(sourcePath string, outputDir string) string

GenerateTestPath returns the expected path for a test file

func (*PythonAdapter) GetPromptTemplate

func (a *PythonAdapter) GetPromptTemplate(testType string) string

GetPromptTemplate returns the prompt template for Python tests

func (*PythonAdapter) ParseFile

func (a *PythonAdapter) ParseFile(content string) (*models.AST, error)

ParseFile parses Python source code and extracts structure

func (*PythonAdapter) RunTests

func (a *PythonAdapter) RunTests(testDir string) (*models.TestResults, error)

RunTests executes Python tests and returns results

func (*PythonAdapter) SelectFramework

func (a *PythonAdapter) SelectFramework(projectPath string) string

SelectFramework determines the test framework to use

func (*PythonAdapter) ValidateTests

func (a *PythonAdapter) ValidateTests(testCode string, testPath string) error

ValidateTests checks if generated tests are valid Python

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

Registry manages language adapters

func DefaultRegistry

func DefaultRegistry() *Registry

DefaultRegistry returns the singleton registry with all default adapters

func NewRegistry

func NewRegistry() *Registry

NewRegistry creates a new empty adapter registry

func (*Registry) GetAdapter

func (r *Registry) GetAdapter(language string) LanguageAdapter

GetAdapter returns the adapter for a language

func (*Registry) GetAdapterForFile

func (r *Registry) GetAdapterForFile(filePath string) LanguageAdapter

GetAdapterForFile returns the adapter for a file based on its extension

func (*Registry) HasAdapter

func (r *Registry) HasAdapter(language string) bool

HasAdapter returns true if an adapter exists for the language

func (*Registry) ListLanguages

func (r *Registry) ListLanguages() []string

ListLanguages returns all registered languages

func (*Registry) Register

func (r *Registry) Register(adapter LanguageAdapter)

Register adds an adapter to the registry

type RubyAdapter added in v0.1.12

type RubyAdapter struct {
	// contains filtered or unexported fields
}

func (RubyAdapter) CanHandle added in v0.1.12

func (a RubyAdapter) CanHandle(filePath string) bool

func (*RubyAdapter) ExtractDefinitions added in v0.1.12

func (a *RubyAdapter) ExtractDefinitions(ast *models.AST) ([]*models.Definition, error)

func (RubyAdapter) FormatTestCode added in v0.1.12

func (a RubyAdapter) FormatTestCode(code string) (string, error)

func (*RubyAdapter) GenerateTestPath added in v0.1.12

func (a *RubyAdapter) GenerateTestPath(sourcePath string, outputDir string) string

func (RubyAdapter) GetPromptTemplate added in v0.1.12

func (a RubyAdapter) GetPromptTemplate(testType string) string

func (*RubyAdapter) ParseFile added in v0.1.12

func (a *RubyAdapter) ParseFile(content string) (*models.AST, error)

func (RubyAdapter) RunTests added in v0.1.12

func (a RubyAdapter) RunTests(testDir string) (*models.TestResults, error)

func (RubyAdapter) SelectFramework added in v0.1.12

func (a RubyAdapter) SelectFramework(projectPath string) string

func (RubyAdapter) ValidateTests added in v0.1.12

func (a RubyAdapter) ValidateTests(testCode string, testPath string) error

type RustAdapter

type RustAdapter struct {
	BaseAdapter
}

RustAdapter handles Rust source files

func NewRustAdapter

func NewRustAdapter() *RustAdapter

NewRustAdapter creates a new Rust language adapter

func (*RustAdapter) CanHandle

func (a *RustAdapter) CanHandle(filePath string) bool

CanHandle returns true if this adapter can handle the file

func (*RustAdapter) ExtractDefinitions

func (a *RustAdapter) ExtractDefinitions(ast *models.AST) ([]*models.Definition, error)

ExtractDefinitions returns definitions from parsed AST

func (*RustAdapter) FormatTestCode

func (a *RustAdapter) FormatTestCode(code string) (string, error)

FormatTestCode formats Rust test code using rustfmt

func (*RustAdapter) GenerateTestPath

func (a *RustAdapter) GenerateTestPath(sourcePath string, outputDir string) string

GenerateTestPath returns the expected path for a test file

func (*RustAdapter) GetPromptTemplate

func (a *RustAdapter) GetPromptTemplate(testType string) string

GetPromptTemplate returns the prompt template for Rust tests

func (*RustAdapter) ParseFile

func (a *RustAdapter) ParseFile(content string) (*models.AST, error)

ParseFile parses Rust source code and extracts structure

func (*RustAdapter) RunTests

func (a *RustAdapter) RunTests(testDir string) (*models.TestResults, error)

RunTests executes Rust tests and returns results

func (*RustAdapter) SelectFramework

func (a *RustAdapter) SelectFramework(projectPath string) string

SelectFramework determines the test framework to use

func (*RustAdapter) ValidateTests

func (a *RustAdapter) ValidateTests(testCode string, testPath string) error

ValidateTests checks if generated tests compile

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL