blob: cfcb90bccfde9a02fae54debeddfc58f0a23b965 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package value
import (
"testing"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/emptypb"
orchestratorpb "go.chromium.org/turboci/proto/go/graph/orchestrator/v1"
"go.chromium.org/turboci/proto/go/utils/internal/test/assert"
)
func TestWrite(t *testing.T) {
t.Parallel()
t.Run(`ok`, func(t *testing.T) {
t.Parallel()
vw, err := Write(&emptypb.Empty{})
assert.NoErr(t, err)
assert.Match(t, orchestratorpb.ValueWrite_builder{
Data: &anypb.Any{TypeUrl: URL[*emptypb.Empty]()},
Realm: proto.String(RealmFromContainer),
}.Build(), vw)
})
t.Run(`ok_realm`, func(t *testing.T) {
t.Parallel()
vw, err := Write(&emptypb.Empty{}, "project:realm")
assert.NoErr(t, err)
assert.Match(t, orchestratorpb.ValueWrite_builder{
Data: &anypb.Any{TypeUrl: URL[*emptypb.Empty]()},
Realm: proto.String("project:realm"),
}.Build(), vw)
})
t.Run(`err_two_realms`, func(t *testing.T) {
t.Parallel()
_, err := Write(&emptypb.Empty{}, "project:realm", "what")
assert.ErrLike(t, err, "realm provided more than once")
})
t.Run(`err_any`, func(t *testing.T) {
t.Parallel()
_, err := Write(&anypb.Any{})
assert.ErrLike(t, err, "cannot handle google.protobuf.Any")
})
}