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  }