Added a /conditions/current endpoint with computed best-guess values for current conditions
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
This commit is contained in:
62
internal/application/units/registry_test.go
Normal file
62
internal/application/units/registry_test.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package units
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestRegistryResolve(t *testing.T) {
|
||||
reg := NewRegistry()
|
||||
if err := reg.Register(StaticFactory{UnitSystem: "us", Converter: USConverter{}}); err != nil {
|
||||
t.Fatalf("register us: %v", err)
|
||||
}
|
||||
if err := reg.Register(StaticFactory{UnitSystem: "metric", Converter: MetricConverter{}}); err != nil {
|
||||
t.Fatalf("register metric: %v", err)
|
||||
}
|
||||
|
||||
converter, err := reg.Resolve("US")
|
||||
if err != nil {
|
||||
t.Fatalf("resolve us: %v", err)
|
||||
}
|
||||
if converter.System() != "us" {
|
||||
t.Fatalf("expected us converter, got %q", converter.System())
|
||||
}
|
||||
|
||||
converter, err = reg.Resolve(" metric ")
|
||||
if err != nil {
|
||||
t.Fatalf("resolve metric: %v", err)
|
||||
}
|
||||
if converter.System() != "metric" {
|
||||
t.Fatalf("expected metric converter, got %q", converter.System())
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistryRejectsInvalidRegistration(t *testing.T) {
|
||||
reg := NewRegistry()
|
||||
if err := reg.Register(nil); err == nil {
|
||||
t.Fatalf("expected error for nil factory")
|
||||
}
|
||||
|
||||
if err := reg.Register(StaticFactory{UnitSystem: "", Converter: USConverter{}}); err == nil {
|
||||
t.Fatalf("expected error for empty unit system")
|
||||
}
|
||||
|
||||
if err := reg.Register(StaticFactory{UnitSystem: "us", Converter: nil}); err == nil {
|
||||
t.Fatalf("expected error for nil converter")
|
||||
}
|
||||
|
||||
if err := reg.Register(StaticFactory{UnitSystem: "us", Converter: USConverter{}}); err != nil {
|
||||
t.Fatalf("register us: %v", err)
|
||||
}
|
||||
if err := reg.Register(StaticFactory{UnitSystem: "US", Converter: USConverter{}}); err == nil {
|
||||
t.Fatalf("expected duplicate registration error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistryResolveUnknown(t *testing.T) {
|
||||
reg := NewRegistry()
|
||||
if err := reg.Register(StaticFactory{UnitSystem: "us", Converter: USConverter{}}); err != nil {
|
||||
t.Fatalf("register us: %v", err)
|
||||
}
|
||||
|
||||
if _, err := reg.Resolve("metric"); err == nil {
|
||||
t.Fatalf("expected unsupported unit system error")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user