Codebase list golang-github-mitchellh-mapstructure / 1ceb09e
test to verify map => struct Mitchell Hashimoto 3 years ago
1 changed file(s) with 30 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
24192419 }
24202420 }
24212421
2422 func TestDecode_mapToStruct(t *testing.T) {
2423 type Target struct {
2424 String string
2425 StringPtr *string
2426 }
2427
2428 expected := Target{
2429 String: "hello",
2430 }
2431
2432 var target Target
2433 err := Decode(map[string]interface{}{
2434 "string": "hello",
2435 "StringPtr": "goodbye",
2436 }, &target)
2437 if err != nil {
2438 t.Fatalf("got error: %s", err)
2439 }
2440
2441 // Pointers fail reflect test so do those manually
2442 if target.StringPtr == nil || *target.StringPtr != "goodbye" {
2443 t.Fatalf("bad: %#v", target)
2444 }
2445 target.StringPtr = nil
2446
2447 if !reflect.DeepEqual(target, expected) {
2448 t.Fatalf("bad: %#v", target)
2449 }
2450 }
2451
24222452 func testSliceInput(t *testing.T, input map[string]interface{}, expected *Slice) {
24232453 var result Slice
24242454 err := Decode(input, &result)