blob: 88b3a0fdbc0f26d1cdd7fd1917ede61c218f594e [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package main
import (
"github.com/golang/mock/gomock"
mock_checkout "go.chromium.org/chromiumos/infra/go/internal/checkout/mock"
"go.chromium.org/chromiumos/infra/go/internal/repo"
"gotest.tools/assert"
"testing"
)
var testManifest = repo.Manifest{
Projects: []repo.Project{
{Path: "foo1/", Name: "foo", Revision: "100", Upstream: "refs/heads/factory-100"},
{Path: "foo2/", Name: "foo", Revision: "101"},
{Path: "bar/", Name: "bar"},
{Path: "baz1/", Name: "baz", Upstream: "refs/heads/oldbranch-factory-100"},
{Path: "baz2/", Name: "baz", Upstream: "refs/heads/oldbranch-factory-101"},
},
}
func TestProjectBranchName(t *testing.T) {
ctl := gomock.NewController(t)
defer ctl.Finish()
m := mock_checkout.NewMockCheckout(ctl)
checkout = m
c := &createBranchRun{}
m.EXPECT().
Manifest().
Return(testManifest).
AnyTimes()
assert.Equal(t, c.projectBranchName("mybranch", testManifest.Projects[0], ""), "mybranch-factory-100")
assert.Equal(t, c.projectBranchName("mybranch", testManifest.Projects[1], ""), "mybranch-101")
assert.Equal(t, c.projectBranchName("mybranch", testManifest.Projects[2], ""), "mybranch")
}
func TestProjectBranchName_withOriginal(t *testing.T) {
ctl := gomock.NewController(t)
defer ctl.Finish()
m := mock_checkout.NewMockCheckout(ctl)
checkout = m
c := &createBranchRun{}
m.EXPECT().
Manifest().
Return(testManifest).
AnyTimes()
assert.Equal(t, c.projectBranchName("mybranch", testManifest.Projects[3], "oldbranch"), "mybranch-factory-100")
assert.Equal(t, c.projectBranchName("mybranch", testManifest.Projects[4], "oldbranch"), "mybranch-factory-101")
}