github.com/thetreep/go-swagger@v0.0.0-20240223100711-35af64f14f01/fixtures/bugs/1548/base64Thing_test.go (about) 1 //go:build ignore 2 // +build ignore 3 4 package main 5 6 import ( 7 "encoding/json" 8 "os" 9 "path/filepath" 10 "strings" 11 "testing" 12 13 "github.com/go-openapi/strfmt" 14 "github.com/stretchr/testify/assert" 15 "github.com/thetreep/go-swagger/fixtures/bugs/1548/gen-fixture-1548/models" 16 ) 17 18 func Test_Base64Thing(t *testing.T) { 19 base := "base64Thing-data" 20 cwd, _ := os.Getwd() 21 // read schema 22 filepath.Walk( 23 cwd, func(path string, info os.FileInfo, err error) error { 24 fixture := info.Name() 25 if !info.IsDir() && strings.HasPrefix(fixture, base) { 26 // read fixture 27 buf, _ := os.ReadFile(fixture) 28 29 t.Logf("INFO:Fixture: %s: %s", fixture, string(buf)) 30 var input interface{} 31 erm := json.Unmarshal(buf, &input) 32 if !assert.NoError(t, erm, "ERROR:Error unmarshaling fixture: %v", erm) { 33 t.FailNow() 34 return erm 35 } 36 37 var erv error 38 model := models.Base64Model{} 39 eru := json.Unmarshal(buf, &model) 40 if fixture != base+"-3.json" { 41 if assert.NoErrorf(t, eru, "ERROR:Error unmarshaling struct: %v", eru) { 42 // run model validation 43 erv = model.Validate(strfmt.Default) 44 if erv == nil { 45 t.Logf("INFO:Validation for %s returned: valid", fixture) 46 47 } else { 48 t.Logf("INFO:Validation for %s returned: invalid, with: %v", fixture, erv) 49 } 50 } else { 51 t.FailNow() 52 return eru 53 } 54 } else { 55 t.Logf("INFO: expected error= invalid base 64 string") 56 } 57 // marshall the model back to json 58 bbb, erm := json.Marshal(model) 59 if assert.NoErrorf(t, erm, "ERROR:Error marshaling: %v", erm) { 60 t.Logf("INFO:Data internal representation: %s", string(model.Prop1)) 61 t.Logf("INFO:Data marshalled as: %s", string(bbb)) 62 } 63 } 64 return nil 65 }, 66 ) 67 68 }