github.com/letsencrypt/trillian@v1.1.2-0.20180615153820-ae375a99d36a/testonly/matchers/atleast.go (about) 1 // Copyright 2017 Google Inc. All Rights Reserved. 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 matchers contains additional gomock matchers. 16 package matchers 17 18 import ( 19 "fmt" 20 21 "github.com/golang/mock/gomock" 22 ) 23 24 // AtLeast returns a matcher that requires a number >= n. 25 func AtLeast(n int) gomock.Matcher { 26 return &atLeastMatcher{n} 27 } 28 29 type atLeastMatcher struct { 30 num int 31 } 32 33 func (m atLeastMatcher) Matches(x interface{}) bool { 34 if x, ok := x.(int); ok { 35 return x >= m.num 36 } 37 return false 38 } 39 40 func (m atLeastMatcher) String() string { 41 return fmt.Sprintf("at least %v", m.num) 42 }