bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/exprhelpers/jsonextract_test.go (about)

     1  package exprhelpers
     2  
     3  import (
     4  	"log"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestJsonExtract(t *testing.T) {
    11  	if err := Init(); err != nil {
    12  		log.Fatalf(err.Error())
    13  	}
    14  
    15  	err := FileInit(TestFolder, "test_data_re.txt", "regex")
    16  	if err != nil {
    17  		log.Fatalf(err.Error())
    18  	}
    19  
    20  	tests := []struct {
    21  		name         string
    22  		jsonBlob     string
    23  		targetField  string
    24  		expectResult string
    25  	}{
    26  		{
    27  			name:         "basic json extract",
    28  			jsonBlob:     `{"test" : "1234"}`,
    29  			targetField:  "test",
    30  			expectResult: "1234",
    31  		},
    32  		{
    33  			name:         "basic json extract with non existing field",
    34  			jsonBlob:     `{"test" : "1234"}`,
    35  			targetField:  "non_existing_field",
    36  			expectResult: "",
    37  		},
    38  	}
    39  
    40  	for _, test := range tests {
    41  		result := JsonExtract(test.jsonBlob, test.targetField)
    42  		isOk := assert.Equal(t, test.expectResult, result)
    43  		if !isOk {
    44  			t.Fatalf("test '%s' failed", test.name)
    45  		}
    46  		log.Printf("test '%s' : OK", test.name)
    47  	}
    48  
    49  }