blob: a97373ce734b244069f40d6816ab8bd7ba0aaf2a [file] [log] [blame]
package buildbucket_test
import (
"context"
"testing"
"github.com/golang/protobuf/ptypes/timestamp"
"github.com/stretchr/testify/require"
buildbucketpb "go.chromium.org/luci/buildbucket/proto"
"go.skia.org/infra/go/buildbucket/bb_testutils"
"go.skia.org/infra/go/deepequal/assertdeep"
"go.skia.org/infra/go/testutils/unittest"
)
func TestGetBuild(t *testing.T) {
unittest.SmallTest(t)
id := int64(12345)
c := bb_testutils.NewMockClient(t)
expect := &buildbucketpb.Build{
Builder: &buildbucketpb.BuilderID{
Project: "fake",
Bucket: "skia.primary",
Builder: "Housekeeper-OnDemand-Presubmit",
},
EndTime: &timestamp.Timestamp{
Seconds: 1553793030,
Nanos: 570629000,
},
CreatedBy: "some@user.com",
CreateTime: &timestamp.Timestamp{
Seconds: 1553792903,
Nanos: 783203000,
},
Id: id,
Input: &buildbucketpb.Build_Input{
GerritChanges: []*buildbucketpb.GerritChange{
{
Host: "skia-review.googlesource.com",
Project: "skia",
Change: 12345,
Patchset: 1,
},
},
},
Status: buildbucketpb.Status_SUCCESS,
}
c.MockGetBuild(expect.Id, expect, nil)
b, err := c.GetBuild(context.TODO(), id)
require.NoError(t, err)
require.NotNil(t, b)
assertdeep.Equal(t, expect, b)
}
func TestGetTrybotsForCL(t *testing.T) {
unittest.SmallTest(t)
id := int64(12345)
c := bb_testutils.NewMockClient(t)
expect := &buildbucketpb.Build{
Builder: &buildbucketpb.BuilderID{
Project: "skia",
Bucket: "skia.primary",
Builder: "Housekeeper-OnDemand-Presubmit",
},
EndTime: &timestamp.Timestamp{
Seconds: 1553793030,
Nanos: 570629000,
},
CreatedBy: "some@user.com",
CreateTime: &timestamp.Timestamp{
Seconds: 1553792903,
Nanos: 783203000,
},
Id: id,
Input: &buildbucketpb.Build_Input{
GerritChanges: []*buildbucketpb.GerritChange{
{
Host: "skia-review.googlesource.com",
Project: "skia",
Change: 12345,
Patchset: 1,
},
},
},
Status: buildbucketpb.Status_SUCCESS,
}
c.MockSearchBuilds(&buildbucketpb.BuildPredicate{
GerritChanges: []*buildbucketpb.GerritChange{
{
Host: "skia-review.googlesource.com",
Change: 12345,
Patchset: 1,
},
},
}, []*buildbucketpb.Build{expect}, nil)
b, err := c.GetTrybotsForCL(context.TODO(), 12345, 1, "https://skia-review.googlesource.com")
require.NoError(t, err)
require.NotNil(t, b)
require.Equal(t, 1, len(b))
assertdeep.Equal(t, expect, b[0])
}