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  }