MCPcopy Create free account
hub / github.com/CloudyKit/jet / TestEvalStructFieldPointerExpressions

Function TestEvalStructFieldPointerExpressions

eval_test.go:578–623  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

576}
577
578func TestEvalStructFieldPointerExpressions(t *testing.T) {
579 var data = make(VarMap)
580
581 type structWithPointers struct {
582 StringField *string
583 IntField *int
584 StructField *structWithPointers
585 }
586
587 stringVal := "test"
588 intVal := 10
589 nestedStringVal := "nested"
590
591 s := structWithPointers{
592 StringField: &stringVal,
593 IntField: &intVal,
594 StructField: &structWithPointers{
595 StringField: &nestedStringVal,
596 },
597 }
598 data.Set("structWithPointerFields", s)
599 RunJetTest(t, data, nil, "PointerFields_1", `{{ structWithPointerFields.IntField }}`, "10")
600 RunJetTest(t, data, nil, "PointerFields_2", `{{ structWithPointerFields.StructField.IntField }}`, "<nil>")
601 RunJetTest(t, data, nil, "PointerFields_3", `{{ structWithPointerFields.StringField }}`, "test")
602 RunJetTest(t, data, nil, "PointerFields_4", `{{ structWithPointerFields.StructField.StringField }}`, "nested")
603
604 s2 := structWithPointers{
605 StringField: &stringVal,
606 IntField: &intVal,
607 }
608 data.Set("structWithPointerFields2", s2)
609 RunJetTest(t, data, nil, "PointerFields_5", `{{ structWithPointerFields2.IntField }}`, "10")
610 RunJetTest(t, data, nil, "PointerFields_6", `{{ structWithPointerFields2.StringField }}`, "test")
611 RunJetTest(t, data, nil, "PointerFields_7", `{{ structWithPointerFields2.StructField }}`, "<nil>")
612
613 var set = NewSet(NewOSFileSystemLoader("./testData"), WithSafeWriter(nil))
614 tt, err := set.parse("PointerFields_8", `{{ structWithPointerFields2.StructField.StringField }}`, false)
615 if err != nil {
616 t.Error(err)
617 }
618 buff := bytes.NewBuffer(nil)
619 err = tt.Execute(buff, data, nil)
620 if err == nil {
621 t.Error("expected evaluating field of nil struct to fail with a runtime error but got nil")
622 }
623}
624
625func TestEvalBuiltinExpression(t *testing.T) {
626 var data = make(VarMap)

Callers

nothing calls this directly

Calls 7

RunJetTestFunction · 0.85
NewSetFunction · 0.85
NewOSFileSystemLoaderFunction · 0.85
WithSafeWriterFunction · 0.85
parseMethod · 0.80
ExecuteMethod · 0.80
SetMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…