github.com/google/osv-scalibr@v0.4.1/enricher/license/fakeclient/fakeclient.go (about) 1 // Copyright 2025 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 // Package fakeclient contains a fake implementation of the deps.dev client for testing purposes. 16 package fakeclient 17 18 import ( 19 "context" 20 21 depsdevpb "deps.dev/api/v3" 22 "github.com/google/osv-scalibr/enricher/license" 23 "google.golang.org/grpc" 24 ) 25 26 var _ license.Client = &fakeClient{} 27 28 type versionKey struct { 29 System depsdevpb.System 30 Name string 31 Version string 32 } 33 34 type fakeClient struct { 35 licenseMap map[versionKey][]string 36 } 37 38 // New return a new fakeclient using the provided licenses 39 func New(licenses map[*depsdevpb.VersionKey][]string) license.Client { 40 licenseMap := map[versionKey][]string{} 41 for k, v := range licenses { 42 licenseMap[versionKey{System: k.System, Version: k.Version, Name: k.Name}] = v 43 } 44 return &fakeClient{licenseMap: licenseMap} 45 } 46 47 // GetVersion implements license.Client. 48 func (f *fakeClient) GetVersion(_ context.Context, in *depsdevpb.GetVersionRequest, _ ...grpc.CallOption) (*depsdevpb.Version, error) { 49 k := versionKey{System: in.VersionKey.System, Version: in.VersionKey.Version, Name: in.VersionKey.Name} 50 licenses := f.licenseMap[k] 51 return &depsdevpb.Version{Licenses: licenses}, nil 52 }