32 lines
899 B
Go
32 lines
899 B
Go
|
|
package ephem
|
||
|
|
|
||
|
|
import "testing"
|
||
|
|
|
||
|
|
func TestGlobalDefaultInstanceIsStable(t *testing.T) {
|
||
|
|
model, generation := Active(), Generation()
|
||
|
|
first := Global()
|
||
|
|
if first == nil || first.Model() != model {
|
||
|
|
t.Fatalf("default instance = %v, active model = %v", first, model)
|
||
|
|
}
|
||
|
|
if second := Global(); second != first {
|
||
|
|
t.Error("lazy default must retain its instance identity")
|
||
|
|
}
|
||
|
|
if Active() != model || Generation() != generation {
|
||
|
|
t.Error("reading the default changed the active model or generation")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestGlobalExplicitInstanceIsStable(t *testing.T) {
|
||
|
|
previous := Global()
|
||
|
|
t.Cleanup(func() { SetGlobal(previous) })
|
||
|
|
custom := NewInstance(testEngine{marker: 7})
|
||
|
|
SetGlobal(custom)
|
||
|
|
if Global() != custom || Global() != custom {
|
||
|
|
t.Error("explicit default lost its instance identity")
|
||
|
|
}
|
||
|
|
SetGlobal(nil)
|
||
|
|
if Global() != custom {
|
||
|
|
t.Error("nil must not replace an explicit default")
|
||
|
|
}
|
||
|
|
}
|