mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-18 02:45:26 +00:00
40 lines
662 B
Go
40 lines
662 B
Go
|
|
package component
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/leslie-qiwa/flat"
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestFlatMap_FlattenUnflatten(t *testing.T) {
|
||
|
|
data := map[string]interface{}{
|
||
|
|
"foo": "bar",
|
||
|
|
"bar": map[string]interface{}{
|
||
|
|
"baz": "foo",
|
||
|
|
},
|
||
|
|
"slice": []interface{}{
|
||
|
|
"foo",
|
||
|
|
"bar",
|
||
|
|
},
|
||
|
|
"with.dot": map[string]interface{}{
|
||
|
|
"foo": "bar",
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
opts := &flat.Options{
|
||
|
|
Safe: true,
|
||
|
|
Delimiter: "~",
|
||
|
|
}
|
||
|
|
flattened, err := flat.Flatten(data, opts)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
|
||
|
|
nested, err := flat.Unflatten(flattened, opts)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
require.Equal(t, data, nested, "unexpected data")
|
||
|
|
}
|