github.com/kumasuke120/mockuma@v1.1.9/internal/mckmaps/preprocessor_test.go (about) 1 package mckmaps 2 3 import ( 4 "io/ioutil" 5 "path/filepath" 6 "testing" 7 8 "github.com/kumasuke120/mockuma/internal/myjson" 9 "github.com/kumasuke120/mockuma/internal/myos" 10 "github.com/kumasuke120/mockuma/internal/types" 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 ) 14 15 //noinspection GoImportUsedAsName 16 func TestCommentFilter(t *testing.T) { 17 assert := assert.New(t) 18 require := require.New(t) 19 20 fb0, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "removeComment-0.json")) 21 require.Nil(err) 22 j0, err := myjson.Unmarshal(fb0) 23 require.Nil(err) 24 25 fbe, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "removeComment-expected.json")) 26 require.Nil(err) 27 je, err := myjson.Unmarshal(fbe) 28 require.Nil(err) 29 30 ja, err := types.DoFiltersOnV(j0, &dCommentProcessor{}) 31 assert.Nil(err) 32 assert.Equal(je, ja) 33 } 34 35 //noinspection GoImportUsedAsName 36 func TestLoadFileFilter(t *testing.T) { 37 assert := assert.New(t) 38 require := require.New(t) 39 40 require.Nil(myos.InitWd()) 41 oldWd := myos.GetWd() 42 43 fb0, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "loadFile-0.json")) 44 require.Nil(err) 45 j0, err := myjson.Unmarshal(fb0) 46 require.Nil(err) 47 48 fbe, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "loadFile-expected.json")) 49 require.Nil(err) 50 je, err := myjson.Unmarshal(fbe) 51 require.Nil(err) 52 53 err = myos.Chdir(filepath.Join(oldWd, "testdata", "preprocessor")) 54 require.Nil(err) 55 56 ja, err := types.DoFiltersOnV(j0, makeDFileProcessor()) 57 if assert.Nil(err) { 58 assert.Equal(je, ja) 59 } 60 61 require.Nil(myos.Chdir(oldWd)) 62 } 63 64 //noinspection GoImportUsedAsName 65 func TestParseRegexp(t *testing.T) { 66 assert := assert.New(t) 67 require := require.New(t) 68 69 fb0, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "parseRegexp.json")) 70 require.Nil(err) 71 j0, err := myjson.Unmarshal(fb0) 72 require.Nil(err) 73 74 ja0, e0 := types.DoFiltersOnV(j0, &dJSONProcessor{}, makeDRegexpProcessor()) 75 if assert.Nil(e0) && assert.IsType(myjson.Array{}, ja0) { 76 _ja0 := ja0.(myjson.Array) 77 assert.IsType(myjson.ExtRegexp(nil), _ja0[0]) 78 o1, e1 := myjson.ToObject(_ja0.Get(1)) 79 if assert.Nil(e1) { 80 assert.IsType(myjson.ExtRegexp(nil), o1.Get("r")) 81 } 82 o2, e2 := myjson.ToObject(o1.Get("j").(myjson.ExtJSONMatcher).Unwrap()) 83 if assert.Nil(e2) { 84 assert.IsType(myjson.ExtRegexp(nil), o2.Get("r")) 85 } 86 } 87 } 88 89 //noinspection GoImportUsedAsName 90 func TestRenderTemplate(t *testing.T) { 91 assert := assert.New(t) 92 require := require.New(t) 93 94 require.Nil(myos.InitWd()) 95 oldWd := myos.GetWd() 96 97 fb0, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "renderTemplate.json")) 98 require.Nil(err) 99 j0, err := myjson.Unmarshal(fb0) 100 require.Nil(err) 101 102 fbe, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "renderTemplate-expected.json")) 103 require.Nil(err) 104 je, err := myjson.Unmarshal(fbe) 105 require.Nil(err) 106 107 err = myos.Chdir(filepath.Join(oldWd, "testdata", "preprocessor")) 108 require.Nil(err) 109 110 ja, err := types.DoFiltersOnV(j0, makeDTemplateProcessor()) 111 if assert.Nil(err) { 112 assert.Equal(je, ja) 113 } 114 115 require.Nil(myos.Chdir(oldWd)) 116 } 117 118 //noinspection GoImportUsedAsName 119 func TestToJSONMatcher(t *testing.T) { 120 assert := assert.New(t) 121 require := require.New(t) 122 123 fb0, err := ioutil.ReadFile(filepath.Join("testdata", "preprocessor", "toJSONMatcher.json")) 124 require.Nil(err) 125 j0, err := myjson.Unmarshal(fb0) 126 require.Nil(err) 127 128 expected := myjson.MakeExtJSONMatcher(myjson.Object{ 129 "a": myjson.MakeExtJSONMatcher(myjson.Object{ 130 "v": myjson.Number(1), 131 }), 132 "b1": myjson.Array{ 133 nil, 134 myjson.Number(1), 135 myjson.Number(2), 136 }, 137 "b2": myjson.Array{ 138 myjson.MakeExtJSONMatcher(myjson.Object{ 139 "v": myjson.String("1"), 140 }), 141 myjson.MakeExtJSONMatcher(myjson.Object{ 142 "v": myjson.String("2"), 143 }), 144 }, 145 "b3": myjson.MakeExtJSONMatcher(myjson.Array{ 146 myjson.Number(1), 147 myjson.Number(2), 148 }), 149 "$c": myjson.String("3"), 150 }) 151 152 ja, err := types.DoFiltersOnV(j0, &dJSONProcessor{}) 153 if assert.Nil(err) { 154 assert.Equal(expected, ja) 155 } 156 }