go.fuchsia.dev/infra@v0.0.0-20240507153436-9b593402251b/cmd/lkg/common_test.go (about) 1 // Copyright 2020 The Fuchsia Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package main 6 7 import ( 8 "reflect" 9 "testing" 10 11 buildbucketpb "go.chromium.org/luci/buildbucket/proto" 12 ) 13 14 func TestNewBuilderID(t *testing.T) { 15 t.Parallel() 16 tests := []struct { 17 input string 18 expected *buildbucketpb.BuilderID 19 expectedErr bool 20 }{ 21 { 22 input: "foo-project/bar-bucket/baz-builder", 23 expected: &buildbucketpb.BuilderID{ 24 Project: "foo-project", 25 Bucket: "bar-bucket", 26 Builder: "baz-builder", 27 }, 28 expectedErr: false, 29 }, 30 { 31 input: "invalid-input", 32 expected: nil, 33 expectedErr: true, 34 }, 35 { 36 input: "foo-project/bar-bucket/baz-builder/extra", 37 expected: nil, 38 expectedErr: true, 39 }, 40 } 41 for _, test := range tests { 42 builderID, err := newBuilderID(test.input) 43 if err == nil { 44 if test.expectedErr { 45 t.Fatalf("expected error, got nil") 46 } 47 } else if !test.expectedErr { 48 t.Fatalf("got unexpected error: %s", err) 49 } 50 if !reflect.DeepEqual(test.expected, builderID) { 51 t.Fatalf("expected %s, got %s", test.expected, builderID) 52 } 53 } 54 }