Documentation
¶
Index ¶
- Constants
- func DirExist(path string) bool
- func FileExist(path string) (bool, os.FileInfo)
- type Component
- type ComponentManager
- type ComponentRef
- type ComponentTester
- func (t *ComponentTester) AssertComponentAvailable(refs ...string)
- func (t *ComponentTester) AssertComponentMissing(refs ...string)
- func (t *ComponentTester) AssertComponentsExactly(refs ...string)
- func (t ComponentTester) AssertFile(u UsableComponent, file string)
- func (t ComponentTester) AssertFileContent(u UsableComponent, file, desiredContent string)
- func (t *ComponentTester) Clean()
- func (t *ComponentTester) ComponentCount() int
- func (t *ComponentTester) ComponentManager() ComponentManager
- func (t *ComponentTester) CreateDir(path string) *testRepo
- func (t *ComponentTester) CreateDirEmptyDesc(path string) *testRepo
- func (t *ComponentTester) Init(c Component) error
- func (t *ComponentTester) Model() Model
- func (t *ComponentTester) T() *testing.T
- func (t *ComponentTester) TemplateContext() TemplateContext
- type FileScmHandler
- func (fileScm FileScmHandler) Fetch(u *url.URL, path string, auth map[string]string) error
- func (fileScm FileScmHandler) Matches(u *url.URL, path string) bool
- func (fileScm FileScmHandler) Switch(path string, ref string) error
- func (fileScm FileScmHandler) Update(path string, auth map[string]string) error
- type GitScmHandler
- type Handler
- type MatchingPath
- type MatchingPaths
- type Model
- type Repository
- type SCMType
- type TemplateContext
- type TestContext
- type UsableComponent
Constants ¶
const ( //GitScm type of GIT source control management system GitScm SCMType = SCMType(SchemeGits) //SvnScm type of SVN source control management system SvnScm SCMType = SCMType(SchemeSvn) //UnknownScm represents an unknown source control management system UnknownScm SCMType = "" //SchemeFile scheme for a file SchemeFile string = "file" //SchemeGits scheme for Git SchemeGits string = "git" //SchemeSvn scheme for svn SchemeSvn string = "svn" //SchemeHttp scheme for http SchemeHttp string = "http" //SchemeHttps scheme for https SchemeHttps string = "https" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Component ¶
type Component interface {
ComponentRef
GetRepository() Repository
GetTemplates() (bool, []string)
ParseModel(path string, tplC TemplateContext) (Model, error)
ParseComponents(path string, tplC TemplateContext) (Component, []Component, error)
}
type ComponentManager ¶
type ComponentManager interface {
//Init initialize the component manager with the specified main component
Init(main Component, tplC TemplateContext) (Model, error)
//ContainsFile returns paths pointing on templated components containing the given file
// Parameters
// name: the name of the file to search
// ctx: the context used to eventually template the matching components
// in: the component referencer where to look for the file, if not provided
// the Finder will look into all the components available into the platform.
ContainsFile(name string, tplC TemplateContext, in ...ComponentRef) MatchingPaths
//ContainsDirectory returns paths pointing on templated components containing the given directory
// Parameters
// name: the name of the directory to search
// ctx: the context used to eventually template the matching components
// in: the component referencer where to look for the directory, if not provided
// the Finder will look into all the components available into the platform.
ContainsDirectory(name string, tplC TemplateContext, in ...ComponentRef) MatchingPaths
//IsAvailable checks if a component is locally available
IsAvailable(cr ComponentRef) bool
// ComponentOrder returns a slice of component identifiers in the parsing order
ComponentOrder() []string
//Use returns a component matching the given reference.
//If the component corresponding to the reference contains a template
//definition then the component will be duplicated and templated before
// being returned as a UsableComponent.
// Don't forget to Release the UsableComponent once is processing is over...
Use(cr ComponentRef, tplC TemplateContext) (UsableComponent, error)
}
ComponentManager is the facade for accessing components.
func CreateComponentManager ¶
func CreateComponentManager(l *log.Logger, workDir string) ComponentManager
createComponentManager creates a new component manager
type ComponentRef ¶
type ComponentRef interface {
// ComponentId returns the referenced component id
ComponentId() string
// Component returns the referenced component
Component(model interface{}) (Component, error)
}
ComponentRef allows to access to a component through its reference
type ComponentTester ¶
type ComponentTester struct {
// contains filtered or unexported fields
}
ComponentTester is an helper user to run unit tests based on local GIT repositories
func CreateComponentTester ¶
func CreateComponentTester(ctx TestContext, tplC TemplateContext) *ComponentTester
CreateComponentTester creates a new ComponentTester
func (*ComponentTester) AssertComponentAvailable ¶
func (t *ComponentTester) AssertComponentAvailable(refs ...string)
func (*ComponentTester) AssertComponentMissing ¶
func (t *ComponentTester) AssertComponentMissing(refs ...string)
func (*ComponentTester) AssertComponentsExactly ¶
func (t *ComponentTester) AssertComponentsExactly(refs ...string)
func (ComponentTester) AssertFile ¶
func (t ComponentTester) AssertFile(u UsableComponent, file string)
AssertFile asserts that a usable component contains a specific file
func (ComponentTester) AssertFileContent ¶
func (t ComponentTester) AssertFileContent(u UsableComponent, file, desiredContent string)
AssertFileContent asserts that a usable component contains a specific file with the desired content
func (*ComponentTester) Clean ¶
func (t *ComponentTester) Clean()
Clean deletes all the content created locally during a test
func (*ComponentTester) ComponentCount ¶
func (t *ComponentTester) ComponentCount() int
ComponentCount returns the number of components available
func (*ComponentTester) ComponentManager ¶
func (t *ComponentTester) ComponentManager() ComponentManager
func (*ComponentTester) CreateDir ¶
func (t *ComponentTester) CreateDir(path string) *testRepo
CreateRep creates a new component folder corresponding to the given path
func (*ComponentTester) CreateDirEmptyDesc ¶
func (t *ComponentTester) CreateDirEmptyDesc(path string) *testRepo
CreateRepDefaultDescriptor creates a new component folder corresponding to the given path and write into it an empty descriptor
func (*ComponentTester) Init ¶
func (t *ComponentTester) Init(c Component) error
Init initializes the ComponentTester and build the environment bases on the launch context used during the tester's creation.
func (*ComponentTester) Model ¶
func (t *ComponentTester) Model() Model
func (*ComponentTester) T ¶
func (t *ComponentTester) T() *testing.T
func (*ComponentTester) TemplateContext ¶
func (t *ComponentTester) TemplateContext() TemplateContext
type FileScmHandler ¶
FileScmHandler Represents the scm connector allowing to fetch local repositories.
It implements "github.com/ekara-platform/engine/component/scm.scmHandler
func (FileScmHandler) Fetch ¶
Fetch implements "github.com/ekara-platform/engine/component/scm.scmHandler
func (FileScmHandler) Matches ¶
func (fileScm FileScmHandler) Matches(u *url.URL, path string) bool
Matches implements "github.com/ekara-platform/engine/component/scm.scmHandler
type GitScmHandler ¶
GitScmHandler Represents the scm connector allowing to fecth GIT repositories.
It implements "github.com/ekara-platform/engine/component/scm.scmHandler
func (GitScmHandler) Fetch ¶
Fetch implements "github.com/ekara-platform/engine/component/scm.scmHandler
func (GitScmHandler) Matches ¶
func (gitScm GitScmHandler) Matches(u *url.URL, path string) bool
Matches implements "github.com/ekara-platform/engine/component/scm.scmHandler
type Handler ¶
type Handler func() (fetchedComponent, error)
Handler allows to fetch a component.
If the component repository has already been fetched and if it matches then it will be updated, if not it will be fetched.
type MatchingPath ¶
type MatchingPath interface {
//Owner gives the usable component wherein the searched content has been located
Owner() UsableComponent
//RelativePath specifies the relatives path of the searched content into the usable component
RelativePath() string
//AbsolutePath specifies the absolute path of the searched content into the usable component
AbsolutePath() string
}
MatchingPath represents the matching path of the searched content
type MatchingPaths ¶
type MatchingPaths struct {
//Paths holds the searched results
Paths []MatchingPath
}
MatchingPaths represents the matching paths of the searched content
func (MatchingPaths) Count ¶
func (mp MatchingPaths) Count() int
Count returns the number of matching paths
func (MatchingPaths) JoinAbsolutePaths ¶
func (mp MatchingPaths) JoinAbsolutePaths(separator string) string
JoinAbsolutePaths joins all the matching paths using the given separator
func (MatchingPaths) PrefixPaths ¶
func (mp MatchingPaths) PrefixPaths(prefix string) []string
PrefixPaths returns the absolute mathcing paths prefixed with the given prefix
func (MatchingPaths) Release ¶
func (mp MatchingPaths) Release()
Release deletes, if any, the templated paths returned
type Repository ¶
type Repository struct {
// Loc holds the absolute location of the repository
Loc *url.URL
// The reference to the branch or tag to fetch. If not specified the default branch will be fetched
Ref string
// The authentication parameters to use if repository is not publicly accessible
Authentication map[string]string
}
Repository represents a component location
func CreateRepository ¶
CreateRepository creates a repository
Parameters repo: the repository Url where to fetch the component ref: the ref to fetch, if the ref is not specified then the default branch will be fetched
func CreateTestRepository ¶
func CreateTestRepository(path, ref string) Repository
func (Repository) CreateChildRepository ¶
func (r Repository) CreateChildRepository(loc *url.URL, ref string, auth map[string]string) (Repository, error)
func (*Repository) Merge ¶
func (r *Repository) Merge(with Repository)
func (Repository) String ¶
func (r Repository) String() string
type TemplateContext ¶
type TemplateContext interface {
Clone(ref ComponentRef) TemplateContext
Execute(content string) (string, error)
}
type TestContext ¶
type UsableComponent ¶
type UsableComponent interface {
//Name returns the name of the component
Id() string
//Templated returns true is the component content has been templated
Templated() bool
//Release deletes the templated content.
Release()
//RootPath returns the absolute path of the, eventually templated, component
RootPath() string
//ContainsFile returns the matching path of the searched file
ContainsFile(name string) (bool, MatchingPath)
//ContainsDirectory returns the matching path of the searched directory
ContainsDirectory(name string) (bool, MatchingPath)
//Source returns the component that was used to produce this UsableComponent
Source() ComponentRef
}
UsableComponent Represent a component which can be used physically