resource_test.go (1212B)
1 package resource 2 3 import ( 4 "context" 5 "fmt" 6 ) 7 8 9 type TestSizeResource struct { 10 *MemResource 11 } 12 13 func NewTestSizeResource() TestSizeResource { 14 mem := NewMemResource() 15 rs := TestSizeResource{&mem} 16 rs.AddTemplate("small", "one {{.foo}} two {{.bar}} three {{.baz}}") 17 rs.AddTemplate("toobug", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus in mattis lorem. Aliquam erat volutpat. Ut vitae metus.") 18 rs.AddTemplate("pages", "one {{.foo}} two {{.bar}} three {{.baz}}\n{{.xyzzy}}") 19 rs.AddEntryFunc("foo", get) 20 rs.AddEntryFunc("bar", get) 21 rs.AddEntryFunc("baz", get) 22 rs.AddEntryFunc("xyzzy", getXyzzy) 23 return rs 24 } 25 26 func get(ctx context.Context, sym string, input []byte) (Result, error) { 27 switch sym { 28 case "foo": 29 return Result{ 30 Content: "inky", 31 }, nil 32 case "bar": 33 return Result{ 34 Content: "pinky", 35 }, nil 36 case "baz": 37 return Result{ 38 Content: "blinky", 39 }, nil 40 } 41 return Result{}, fmt.Errorf("unknown sym: %s", sym) 42 } 43 44 func getXyzzy(ctx context.Context, sym string, input []byte) (Result, error) { 45 r := "inky pinky\nblinky clyde sue\ntinkywinky dipsy\nlala poo\none two three four five six seven\neight nine ten\neleven twelve" 46 return Result{ 47 Content: r, 48 }, nil 49 }