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  }