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