diff --git a/utility/test/time.go b/utility/test/time.go deleted file mode 100644 index 54aaeb28f..000000000 --- a/utility/test/time.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2013 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package test - -import ( - "github.com/prometheus/prometheus/utility" - "time" -) - -type instantProvider struct { - index int - timeQueue []time.Time -} - -func (t *instantProvider) Now() (time time.Time) { - time = t.timeQueue[t.index] - - t.index++ - - return -} - -// NewInstantProvider furnishes an InstantProvider with prerecorded responses -// for calls made against it. It has no validation behaviors of its own and -// will panic if times are requested more than available pre-recorded behaviors. -func NewInstantProvider(times []time.Time) utility.InstantProvider { - return &instantProvider{ - index: 0, - timeQueue: times, - } -} diff --git a/utility/time.go b/utility/time.go deleted file mode 100644 index 3fbe54fd6..000000000 --- a/utility/time.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2013 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package utility - -import ( - "time" -) - -// InstantProvider is a basic interface only useful in testing contexts for -// dispensing the time in a controlled manner. -type InstantProvider interface { - // The current instant. - Now() time.Time -} - -// Time is a simple means for fluently wrapping around standard Go timekeeping -// mechanisms to enhance testability without compromising code readability. -// -// It is sufficient for use on bare initialization. A provider should be -// set only for test contexts. When not provided, it emits the current -// system time. -type Time struct { - // The underlying means through which time is provided, if supplied. - Provider InstantProvider -} - -// Now emits the current instant. -func (t Time) Now() time.Time { - if t.Provider == nil { - return time.Now() - } - - return t.Provider.Now() -}