xref: /aosp_15_r20/external/tink/go/internal/internalregistry/internal_registry_test.go (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1// Copyright 2022 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15////////////////////////////////////////////////////////////////////////////////
16
17package internalregistry_test
18
19import (
20	"testing"
21
22	"github.com/google/tink/go/internal/internalregistry"
23	"github.com/google/tink/go/testing/fakemonitoring"
24)
25
26func TestRegisterMonitoringClient(t *testing.T) {
27	defer internalregistry.ClearMonitoringClient()
28	fakeClient := &fakemonitoring.Client{
29		Name: "fake-monitor-client-1",
30	}
31	if err := internalregistry.RegisterMonitoringClient(fakeClient); err != nil {
32		t.Fatalf("internalregistry.RegisterMonitoringClient() err = %v, want nil", err)
33	}
34	got := internalregistry.GetMonitoringClient().(*fakemonitoring.Client)
35	if got.Name != "fake-monitor-client-1" {
36		t.Errorf("got = %q, want %q", got.Name, "fake-monitor-client-1")
37	}
38}
39
40func TestRegisterTwiceFailsMonitoringClient(t *testing.T) {
41	defer internalregistry.ClearMonitoringClient()
42	fakeClient := fakemonitoring.Client{}
43	if err := internalregistry.RegisterMonitoringClient(&fakeClient); err != nil {
44		t.Fatalf("internalregistry.RegisterMonitoringClient() err = %v, want nil", err)
45	}
46	if err := internalregistry.RegisterMonitoringClient(&fakeClient); err == nil {
47		t.Fatalf("internalregistry.RegisterMonitoringClient() err = nil, want error")
48	}
49}
50
51func TestDefaultMonitoringLogger(t *testing.T) {
52	defaultClient := internalregistry.GetMonitoringClient()
53	defaultLogger, err := defaultClient.NewLogger(nil)
54	if err != nil {
55		t.Fatalf("defaultClient.NewLogger() err = %v, want nil", err)
56	}
57	defaultLogger.Log(0, 0)
58	defaultLogger.LogFailure()
59}
60
61func TestClearMonitoringClient(t *testing.T) {
62	defer internalregistry.ClearMonitoringClient()
63	fakeClient := &fakemonitoring.Client{
64		Name: "fake-monitor-client-1",
65	}
66	defaultClient := internalregistry.GetMonitoringClient()
67	if err := internalregistry.RegisterMonitoringClient(fakeClient); err != nil {
68		t.Fatalf("internalregistry.RegisterMonitoringClient() err = %v, want nil", err)
69	}
70	got := internalregistry.GetMonitoringClient()
71	if got != fakeClient {
72		t.Errorf("internalregistry.GetMonitoringClient() = %v, want %v", got, fakeClient)
73	}
74	internalregistry.ClearMonitoringClient()
75	got = internalregistry.GetMonitoringClient()
76	if got != defaultClient {
77		t.Errorf("internalregistry.GetMonitoringClient() = %v, want %v", got, defaultClient)
78	}
79}
80
81func TestClearReRegisterMonitoringClient(t *testing.T) {
82	defer internalregistry.ClearMonitoringClient()
83	fakeClient := &fakemonitoring.Client{
84		Name: "fake-monitor-client-1",
85	}
86	if err := internalregistry.RegisterMonitoringClient(fakeClient); err != nil {
87		t.Fatalf("internalregistry.RegisterMonitoringClient() err = %v, want nil", err)
88	}
89	internalregistry.ClearMonitoringClient()
90	fakeClient2 := &fakemonitoring.Client{
91		Name: "fake-monitor-client-2",
92	}
93	if err := internalregistry.RegisterMonitoringClient(fakeClient2); err != nil {
94		t.Errorf("internalregistry.RegisterMonitoringClient() err = %v, want nil", err)
95	}
96	got := internalregistry.GetMonitoringClient()
97	if got != fakeClient2 {
98		t.Errorf("internalregistry.GetMonitoringClient() = %v, want %v", got, fakeClient2)
99	}
100}
101