blob: 77510c93f5ecb6d0f54cfbf75f7145f1d1d2e078 [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 (
"reflect"
"testing"
buildbucketpb "go.chromium.org/luci/buildbucket/proto"
)
func TestNewBuilderID(t *testing.T) {
t.Parallel()
tests := []struct {
input string
expected *buildbucketpb.BuilderID
expectedErr bool
}{
{
input: "foo-project/bar-bucket/baz-builder",
expected: &buildbucketpb.BuilderID{
Project: "foo-project",
Bucket: "bar-bucket",
Builder: "baz-builder",
},
expectedErr: false,
},
{
input: "invalid-input",
expected: nil,
expectedErr: true,
},
{
input: "foo-project/bar-bucket/baz-builder/extra",
expected: nil,
expectedErr: true,
},
}
for _, test := range tests {
builderID, err := newBuilderID(test.input)
if err == nil {
if test.expectedErr {
t.Fatalf("expected error, got nil")
}
} else if !test.expectedErr {
t.Fatalf("got unexpected error: %s", err)
}
if !reflect.DeepEqual(test.expected, builderID) {
t.Fatalf("expected %s, got %s", test.expected, builderID)
}
}
}