github.com/go-swagger/go-swagger@v0.31.0/fixtures/bugs/1084/unmarshal_test.gol (about) 1 package generator 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/go-openapi/strfmt" 8 "github.com/stretchr/testify/assert" 9 10 model "github.com/go-swagger/go-swagger/fixtures/bugs/1084/gen-fixture-1084/models" 11 ) 12 13 func Test_Datetime(t *testing.T) { 14 var myTime model.Instant 15 // Works by casting type 16 err := json.Unmarshal([]byte(`"2017-07-26T08:30:06.956884177Z"`), (*strfmt.DateTime)(&myTime)) 17 t.Logf("err= %v", err) 18 t.Logf("myTime= %v", myTime) 19 t.Logf("myTime.String()= %v", strfmt.DateTime(myTime).String()) 20 21 // Should work now 22 var myOtherTime model.Instant 23 json.Unmarshal([]byte(`"2017-07-26T08:30:06.956884177Z"`), &myOtherTime) 24 assert.Equal(t, myTime, myOtherTime) 25 26 ref, _ := json.Marshal((*strfmt.DateTime)(&myTime)) 27 json, _ := myOtherTime.MarshalJSON() 28 assert.Equal(t, ref, json) 29 30 bin, _ := myOtherTime.MarshalBinary() 31 assert.Equal(t, ref, bin) 32 33 var yetAnotherTime model.Instant 34 yetAnotherTime.UnmarshalBinary([]byte(`"2017-07-26T08:30:06.956884177Z"`)) 35 assert.Equal(t, myTime, yetAnotherTime) 36 } 37 38 func Test_Date(t *testing.T) { 39 var myDate model.Birthday 40 err := json.Unmarshal([]byte(`"2017-07-26"`), (*strfmt.Date)(&myDate)) 41 t.Logf("err= %v", err) 42 t.Logf("myDate= %v", myDate) 43 t.Logf("myDate.String()= %v", strfmt.Date(myDate).String()) 44 45 var myOtherDate model.Birthday 46 json.Unmarshal([]byte(`"2017-07-26"`), &myOtherDate) 47 assert.Equal(t, myDate, myOtherDate) 48 49 ref, _ := json.Marshal((*strfmt.Date)(&myDate)) 50 json, _ := myOtherDate.MarshalJSON() 51 assert.Equal(t, ref, json) 52 53 bin, _ := myOtherDate.MarshalBinary() 54 assert.Equal(t, ref, bin) 55 56 var yetAnotherDate model.Birthday 57 yetAnotherDate.UnmarshalBinary([]byte(`"2017-07-26"`)) 58 assert.Equal(t, myDate, yetAnotherDate) 59 } 60 func Test_Duration(t *testing.T) { 61 var myDuration model.Elapsed 62 err := json.Unmarshal([]byte(`"10s"`), (*strfmt.Duration)(&myDuration)) 63 t.Logf("err= %v", err) 64 t.Logf("myDuration= %v", myDuration) 65 t.Logf("myDuration.String()= %v", strfmt.Duration(myDuration).String()) 66 67 var myOtherDuration model.Elapsed 68 json.Unmarshal([]byte(`"10s"`), &myOtherDuration) 69 assert.Equal(t, myDuration, myOtherDuration) 70 71 ref, _ := json.Marshal((*strfmt.Duration)(&myDuration)) 72 json, _ := myOtherDuration.MarshalJSON() 73 assert.Equal(t, ref, json) 74 75 bin, _ := myOtherDuration.MarshalBinary() 76 assert.Equal(t, ref, bin) 77 78 var yetAnotherDuration model.Elapsed 79 yetAnotherDuration.UnmarshalBinary([]byte(`"10s"`)) 80 assert.Equal(t, myDuration, yetAnotherDuration) 81 } 82 83 func Test_Witness(t *testing.T) { 84 var myWitness model.Witness 85 err := json.Unmarshal([]byte(`"http://www.example.com"`), (*strfmt.URI)(&myWitness)) 86 t.Logf("err= %v", err) 87 t.Logf("myWitness= %v", myWitness) 88 t.Logf("myWitness.String()= %v", strfmt.URI(myWitness).String()) 89 90 var myOtherWitness model.Witness 91 json.Unmarshal([]byte(`"http://www.example.com"`), &myOtherWitness) 92 assert.Equal(t, myWitness, myOtherWitness) 93 } 94 95 func Test_Numeric(t *testing.T) { 96 var myNumerical model.Numerical 97 err := json.Unmarshal([]byte(`1000`), (*uint32)(&myNumerical)) 98 t.Logf("err= %v", err) 99 t.Logf("myNumerical= %v", myNumerical) 100 101 var myOtherNumerical model.Numerical 102 json.Unmarshal([]byte(`1000`), &myOtherNumerical) 103 assert.Equal(t, myNumerical, myOtherNumerical) 104 } 105 106 func Test_Boolean(t *testing.T) { 107 var myLogical model.Logical 108 err := json.Unmarshal([]byte(`true`), (*bool)(&myLogical)) 109 t.Logf("err= %v", err) 110 t.Logf("myLogical= %v", myLogical) 111 112 var myOtherLogical model.Logical 113 json.Unmarshal([]byte(`true`), &myOtherLogical) 114 assert.Equal(t, myLogical, myOtherLogical) 115 }