本文整理汇总了Golang中github.com/corestoreio/csfw/config.SectionSlice.ToJSON方法的典型用法代码示例。如果您正苦于以下问题:Golang SectionSlice.ToJSON方法的具体用法?Golang SectionSlice.ToJSON怎么用?Golang SectionSlice.ToJSON使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/corestoreio/csfw/config.SectionSlice
的用法示例。
在下文中一共展示了SectionSlice.ToJSON方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestSectionSliceSortAll
func TestSectionSliceSortAll(t *testing.T) {
want := `[{"ID":"b","SortOrder":-10,"Groups":null},{"ID":"e","SortOrder":1,"Groups":null},{"ID":"c","SortOrder":10,"Groups":null},{"ID":"a","SortOrder":20,"Groups":[{"ID":"b","SortOrder":-10,"Fields":[{"ID":"b","SortOrder":-10},{"ID":"e","SortOrder":1},{"ID":"c","SortOrder":10},{"ID":"d","SortOrder":11},{"ID":"a","SortOrder":20}]},{"ID":"e","SortOrder":1,"Fields":null},{"ID":"d","SortOrder":11,"Fields":[{"ID":"b","SortOrder":-10},{"ID":"e","SortOrder":1},{"ID":"c","SortOrder":10},{"ID":"d","SortOrder":11},{"ID":"a","SortOrder":20}]},{"ID":"a","SortOrder":20,"Fields":[{"ID":"b","SortOrder":-10},{"ID":"e","SortOrder":1},{"ID":"c","SortOrder":10},{"ID":"d","SortOrder":11},{"ID":"a","SortOrder":20}]}]}]` + "\n"
ss := config.SectionSlice{
&config.Section{ID: "a", SortOrder: 20, Groups: config.GroupSlice{
&config.Group{ID: "a", SortOrder: 20, Fields: config.FieldSlice{&config.Field{ID: "a", SortOrder: 20}, &config.Field{ID: "b", SortOrder: -10}, &config.Field{ID: "c", SortOrder: 10}, &config.Field{ID: "d", SortOrder: 11}, &config.Field{ID: "e", SortOrder: 1}}},
&config.Group{ID: "b", SortOrder: -10, Fields: config.FieldSlice{&config.Field{ID: "a", SortOrder: 20}, &config.Field{ID: "b", SortOrder: -10}, &config.Field{ID: "c", SortOrder: 10}, &config.Field{ID: "d", SortOrder: 11}, &config.Field{ID: "e", SortOrder: 1}}},
&config.Group{ID: "d", SortOrder: 11, Fields: config.FieldSlice{&config.Field{ID: "a", SortOrder: 20}, &config.Field{ID: "b", SortOrder: -10}, &config.Field{ID: "c", SortOrder: 10}, &config.Field{ID: "d", SortOrder: 11}, &config.Field{ID: "e", SortOrder: 1}}},
&config.Group{ID: "e", SortOrder: 1},
}},
&config.Section{ID: "b", SortOrder: -10},
&config.Section{ID: "c", SortOrder: 10},
&config.Section{ID: "e", SortOrder: 1},
}
ss.SortAll()
have := ss.ToJSON()
if want != have {
t.Errorf("\nWant: %s\nHave: %s\n", want, have)
}
}
示例2: TestSectionSliceMerge
//.........这里部分代码省略.........
Fields: config.FieldSlice{
nil,
&config.Field{ID: "d", Default: `d`, Comment: "Ring of fire", Type: config.TypeObscure},
&config.Field{ID: "c", Default: `haha`, Type: config.TypeSelect, Scope: scope.NewPerm(scope.DefaultID, scope.WebsiteID)},
},
},
},
},
},
{
&config.Section{
ID: "a",
Groups: config.GroupSlice{
&config.Group{
ID: "b",
Label: "b3",
Fields: config.FieldSlice{
&config.Field{ID: "d", Default: `overriddenD`, Label: "Sect2Group2Label4", Comment: "LOTR"},
&config.Field{ID: "c", Default: `overriddenHaha`, Type: config.TypeHidden},
},
},
},
},
},
},
wantErr: "",
want: `[{"ID":"a","Groups":[{"ID":"b","Label":"b3","Fields":[{"ID":"c","Type":"hidden","Scope":["Default","Website"],"SortOrder":1001,"Default":"overriddenHaha"},{"ID":"d","Type":"obscure","Label":"Sect2Group2Label4","Comment":"LOTR","Default":"overriddenD"}]}]}]` + "\n",
wantLen: 2,
},
5: {
have: []config.SectionSlice{
{
&config.Section{
ID: "a",
Groups: config.GroupSlice{
&config.Group{
ID: "b",
Fields: config.FieldSlice{
&config.Field{
ID: "c",
Default: `c`,
Type: config.TypeMultiselect,
},
},
},
},
},
},
{
nil,
&config.Section{
ID: "a",
Groups: config.GroupSlice{
&config.Group{
ID: "b",
Fields: config.FieldSlice{
nil,
&config.Field{
ID: "c",
Default: `overridenC`,
Type: config.TypeSelect,
Label: "Sect2Group2Label4",
Comment: "LOTR",
SortOrder: 100,
Visible: config.VisibleYes,
},
},
},
},
},
},
},
wantErr: "",
wantLen: 1,
want: `[{"ID":"a","Groups":[{"ID":"b","Fields":[{"ID":"c","Type":"select","Label":"Sect2Group2Label4","Comment":"LOTR","SortOrder":100,"Visible":true,"Default":"overridenC"}]}]}]` + "\n",
},
}
for i, test := range tests {
if len(test.have) == 0 {
test.want = "null\n"
}
var baseSl config.SectionSlice
haveErr := baseSl.MergeMultiple(test.have...)
if test.wantErr != "" {
assert.Len(t, baseSl, 0)
assert.Error(t, haveErr)
assert.Contains(t, haveErr.Error(), test.wantErr)
} else {
assert.NoError(t, haveErr)
j := baseSl.ToJSON()
if j != test.want {
t.Errorf("\nIndex: %d\nExpected: %s\nActual: %s\n", i, test.want, j)
}
}
assert.Exactly(t, test.wantLen, baseSl.TotalFields(), "Index %d", i)
}
}