go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

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 }