Al-HUWAITI Shell
Al-huwaiti


Server : LiteSpeed
System : Linux in-mum-web1112.main-hosting.eu 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64
User : u451330669 ( 451330669)
PHP Version : 8.2.27
Disable Function : NONE
Directory :  /opt/go/pkg/mod/github.com/go-openapi/validate@v0.22.1/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/go/pkg/mod/github.com/go-openapi/validate@v0.22.1/formats_test.go
package validate

import (
	"fmt"
	"reflect"
	"testing"

	"github.com/go-openapi/spec"
	"github.com/go-openapi/strfmt"
	"github.com/stretchr/testify/assert"
)

// Validator for string formats
func TestFormatValidator_EdgeCases(t *testing.T) {
	// Apply
	v := formatValidator{
		KnownFormats: strfmt.Default,
	}

	// formatValidator applies to: Items, Parameter,Schema

	p := spec.Parameter{}
	p.Typed(stringType, "email")
	s := spec.Schema{}
	s.Typed(stringType, "uuid")
	i := spec.Items{}
	i.Typed(stringType, "datetime")

	sources := []interface{}{&p, &s, &i}

	for _, source := range sources {
		// Default formats for strings
		assert.True(t, v.Applies(source, reflect.String))
		// Do not apply for number formats
		assert.False(t, v.Applies(source, reflect.Int))
	}

	assert.False(t, v.Applies("A string", reflect.String))
	assert.False(t, v.Applies(nil, reflect.String))
}

func TestStringValidation(t *testing.T) {
	type testParams struct {
		format string
		obj    fmt.Stringer
	}

	testCases := []*testParams{
		{
			format: "datetime",
			obj:    strfmt.NewDateTime(),
		},
		{
			format: "uuid",
			obj:    strfmt.UUID("00000000-0000-0000-0000-000000000000"),
		},
		{
			format: "email",
			obj:    strfmt.Email("name@domain.tld"),
		},
		{
			format: "bsonobjectid",
			obj:    strfmt.NewObjectId("60a7903427a1e6666d2b998c"),
		},
	}

	for _, v := range testCases {
		err := FormatOf("id", "body", v.format, v.obj.String(), strfmt.Default)
		assert.Nil(t, err)
	}
}

Al-HUWAITI Shell