github.com/go-kivik/kivik/v4@v4.3.2/mockdb/context_test.go (about) 1 // Licensed under the Apache License, Version 2.0 (the "License"); you may not 2 // use this file except in compliance with the License. You may obtain a copy of 3 // the License at 4 // 5 // http://www.apache.org/licenses/LICENSE-2.0 6 // 7 // Unless required by applicable law or agreed to in writing, software 8 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 9 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 10 // License for the specific language governing permissions and limitations under 11 // the License. 12 13 package mockdb 14 15 import ( 16 "context" 17 "time" 18 ) 19 20 var startime = time.Now() 21 22 // canceledContext is immediately canceled 23 type canceledContext struct { 24 ch <-chan struct{} 25 } 26 27 var _ context.Context = &canceledContext{} 28 29 func newCanceledContext() context.Context { 30 ch := make(chan struct{}) 31 close(ch) 32 return &canceledContext{ch} 33 } 34 35 func (c *canceledContext) Deadline() (time.Time, bool) { 36 return startime, true 37 } 38 39 func (c *canceledContext) Done() <-chan struct{} { 40 return c.ch 41 } 42 43 func (c *canceledContext) Err() error { return context.Canceled } 44 45 func (c *canceledContext) Value(_ interface{}) interface{} { return nil }