本文整理汇总了Golang中github.com/openshift/origin/pkg/generate/app.ComponentReference函数的典型用法代码示例。如果您正苦于以下问题:Golang ComponentReference函数的具体用法?Golang ComponentReference怎么用?Golang ComponentReference使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ComponentReference函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestBuildPipelinesWithUnresolvedImage
// Make sure that buildPipelines defaults DockerImage.Config if needed to
// avoid a nil panic.
func TestBuildPipelinesWithUnresolvedImage(t *testing.T) {
dockerParser := dockerfile.NewParser()
dockerFileInput := strings.NewReader("EXPOSE 1234\nEXPOSE 4567")
dockerFile, err := dockerParser.Parse(dockerFileInput)
if err != nil {
t.Fatal(err)
}
sourceRepo, err := app.NewSourceRepository("https://github.com/foo/bar.git")
if err != nil {
t.Fatal(err)
}
sourceRepo.BuildWithDocker()
sourceRepo.SetInfo(&app.SourceRepositoryInfo{
Dockerfile: dockerFile,
})
refs := app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql",
Uses: sourceRepo,
ExpectToBuild: true,
ResolvedMatch: &app.ComponentMatch{
Value: "mysql",
},
}),
}
a := AppConfig{}
group, err := a.buildPipelines(refs, app.Environment{})
if err != nil {
t.Error(err)
}
expectedPorts := util.NewStringSet("1234", "4567")
actualPorts := util.NewStringSet()
for port := range group[0].InputImage.Info.Config.ExposedPorts {
actualPorts.Insert(port)
}
if e, a := expectedPorts.List(), actualPorts.List(); !reflect.DeepEqual(e, a) {
t.Errorf("Expected ports=%v, got %v", e, a)
}
}
开发者ID:Tlacenka,项目名称:origin,代码行数:46,代码来源:newapp_test.go
示例2: TestResolve
func TestResolve(t *testing.T) {
tests := []struct {
name string
cfg AppConfig
components app.ComponentReferences
expectedErr string
}{
{
name: "Resolver error",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql:invalid",
Resolver: app.DockerRegistryResolver{
Client: dockerregistry.NewClient(),
},
})},
expectedErr: `tag "invalid" has not been set`,
},
{
name: "Successful mysql builder",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql",
Match: &app.ComponentMatch{
Builder: true,
},
})},
expectedErr: "",
},
{
name: "Unable to build source code",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql",
ExpectToBuild: true,
})},
expectedErr: "no resolver",
},
{
name: "Successful docker build",
cfg: AppConfig{
Strategy: "docker",
},
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql",
ExpectToBuild: true,
})},
expectedErr: "",
},
}
for _, test := range tests {
err := test.cfg.resolve(test.components)
if err != nil {
if !strings.Contains(err.Error(), test.expectedErr) {
t.Errorf("%s: Invalid error: Expected %s, got %v", test.name, test.expectedErr, err)
}
} else if len(test.expectedErr) != 0 {
t.Errorf("%s: Expected %s error but got none", test.name, test.expectedErr)
}
}
}
开发者ID:mignev,项目名称:origin,代码行数:63,代码来源:newapp_test.go
示例3: TestEnsureHasSource
func TestEnsureHasSource(t *testing.T) {
tests := []struct {
name string
cfg AppConfig
components app.ComponentReferences
repositories []*app.SourceRepository
expectedErr string
}{
{
name: "One requiresSource, multiple repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: app.MockSourceRepositories(),
expectedErr: "there are multiple code locations provided - use one of the following suggestions",
},
{
name: "Multiple requiresSource, multiple repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: app.MockSourceRepositories(),
expectedErr: "Use '[image]~[repo]' to declare which code goes with which image",
},
{
name: "One requiresSource, no repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: []*app.SourceRepository{},
expectedErr: "you must specify a repository via --code",
},
{
name: "Multiple requiresSource, no repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: []*app.SourceRepository{},
expectedErr: "you must provide at least one source code repository",
},
{
name: "Successful - one repository",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: false,
}),
},
repositories: []*app.SourceRepository{app.MockSourceRepositories()[0]},
expectedErr: "",
},
{
name: "Successful - no requiresSource",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: false,
}),
},
repositories: app.MockSourceRepositories(),
expectedErr: "",
},
}
for _, test := range tests {
err := test.cfg.ensureHasSource(test.components, test.repositories)
if err != nil {
if !strings.Contains(err.Error(), test.expectedErr) {
t.Errorf("%s: Invalid error: Expected %s, got %v", test.name, test.expectedErr, err)
}
} else if len(test.expectedErr) != 0 {
t.Errorf("%s: Expected %s error but got none", test.name, test.expectedErr)
}
}
}
开发者ID:mignev,项目名称:origin,代码行数:87,代码来源:newapp_test.go
示例4: TestNewAppResolve
func TestNewAppResolve(t *testing.T) {
tests := []struct {
name string
cfg cmd.AppConfig
components app.ComponentReferences
expectedErr string
}{
{
name: "Resolver error",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql:invalid",
Resolver: app.UniqueExactOrInexactMatchResolver{
Searcher: app.DockerRegistrySearcher{
Client: dockerregistry.NewClient(10*time.Second, true),
},
},
})},
expectedErr: `no match for "mysql:invalid`,
},
{
name: "Successful mysql builder",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql",
ResolvedMatch: &app.ComponentMatch{
Builder: true,
},
})},
expectedErr: "",
},
{
name: "Unable to build source code",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql",
ExpectToBuild: true,
})},
expectedErr: "no resolver",
},
{
name: "Successful docker build",
cfg: cmd.AppConfig{
Strategy: "docker",
},
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
Value: "mysql",
ExpectToBuild: true,
})},
expectedErr: "",
},
}
for _, test := range tests {
err := cmd.Resolve(test.components)
if err != nil {
if !strings.Contains(err.Error(), test.expectedErr) {
t.Errorf("%s: Invalid error: Expected %s, got %v", test.name, test.expectedErr, err)
}
} else if len(test.expectedErr) != 0 {
t.Errorf("%s: Expected %s error but got none", test.name, test.expectedErr)
}
}
}
开发者ID:enoodle,项目名称:origin,代码行数:65,代码来源:newapp_test.go
示例5: TestEnsureHasSource
func TestEnsureHasSource(t *testing.T) {
gitLocalDir := test.CreateLocalGitDirectory(t)
defer os.RemoveAll(gitLocalDir)
tests := []struct {
name string
cfg AppConfig
components app.ComponentReferences
repositories []*app.SourceRepository
expectedErr string
dontExpectToBuild bool
}{
{
name: "One requiresSource, multiple repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: mockSourceRepositories(t, gitLocalDir),
expectedErr: "there are multiple code locations provided - use one of the following suggestions",
},
{
name: "Multiple requiresSource, multiple repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: mockSourceRepositories(t, gitLocalDir),
expectedErr: "Use '[image]~[repo]' to declare which code goes with which image",
},
{
name: "One requiresSource, no repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: []*app.SourceRepository{},
expectedErr: "",
dontExpectToBuild: true,
},
{
name: "Multiple requiresSource, no repositories",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: true,
}),
},
repositories: []*app.SourceRepository{},
expectedErr: "",
dontExpectToBuild: true,
},
{
name: "Successful - one repository",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: false,
}),
},
repositories: mockSourceRepositories(t, gitLocalDir)[:1],
expectedErr: "",
},
{
name: "Successful - no requiresSource",
components: app.ComponentReferences{
app.ComponentReference(&app.ComponentInput{
ExpectToBuild: false,
}),
},
repositories: mockSourceRepositories(t, gitLocalDir),
expectedErr: "",
},
}
for _, test := range tests {
err := EnsureHasSource(test.components, test.repositories, &test.cfg.GenerationInputs)
if err != nil {
if !strings.Contains(err.Error(), test.expectedErr) {
t.Errorf("%s: Invalid error: Expected %s, got %v", test.name, test.expectedErr, err)
}
} else if len(test.expectedErr) != 0 {
t.Errorf("%s: Expected %s error but got none", test.name, test.expectedErr)
}
if test.dontExpectToBuild {
for _, comp := range test.components {
if comp.NeedsSource() {
t.Errorf("%s: expected component reference to not require source.", test.name)
}
}
}
}
}
开发者ID:nak3,项目名称:origin,代码行数:99,代码来源:newapp_test.go
注:本文中的github.com/openshift/origin/pkg/generate/app.ComponentReference函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论