Documentation ¶
Index ¶
- Constants
- Variables
- func AddProvider(tag string, provider TaggedFunction) error
- func AddProviderV2(tag string, provider TaggedFunctionV2) error
- func AmountWithCurrency() string
- func CCNumber() string
- func CCType() string
- func Century() string
- func Contains(slice []string, item string) bool
- func Currency() string
- func Date() string
- func DayOfMonth() string
- func DayOfWeek() string
- func DomainName() string
- func E164PhoneNumber() string
- func Email() string
- func Fake(a interface{}) error
- func FakeColumnWithTag(v interface{}, tag string) error
- func FakeColumnWithType(rt reflect.Type, tag string) (interface{}, error)
- func FakeColumnWithValue(rv reflect.Value, tag string) error
- func FirstName() string
- func FirstNameFemale() string
- func FirstNameMale() string
- func IPv4() string
- func IPv6() string
- func IntToString(intSl []int) (str []string)
- func LastName() string
- func Latitude() float64
- func Longitude() float64
- func MacAddress() string
- func MonthName() string
- func Name() string
- func Paragraph() string
- func Password() string
- func Phonenumber() string
- func RandCJK(size int, start, end int64) string
- func RandInt64(start, end int64) int64
- func RandomInt(minDigit, maxDigit int) []int
- func RandomUnixTime() int64
- func Sentence() string
- func SetAddress(net Addresser)
- func SetDataFaker(d DataFaker)
- func SetDateTimer(d DateTimer)
- func SetDowser(d Dowser)
- func SetNetwork(net Networker)
- func SetNilIfLenIsZero(setNil bool)
- func SetPayment(p Render)
- func SetPhoner(p Phoner)
- func SetPrice(p Money)
- func SetRandomMapAndSliceSize(minSize, maxSize int) error
- func SetRandomNumberBoundaries(start, end int) error
- func SetRandomStringLength(size int) error
- func TimeString() string
- func Timeperiod() string
- func Timestamp() string
- func Timezone() string
- func TitleFemale() string
- func TitleMale() string
- func TollFreePhoneNumber() string
- func URL() string
- func UUIDDigit() string
- func UUIDHyphenated() string
- func UnixTime() int64
- func Username() string
- func Word() string
- func YearString() string
- type Address
- type Addresser
- type DataFaker
- type DateTime
- func (d DateTime) Century(v reflect.Value) (interface{}, error)
- func (d DateTime) Date(v reflect.Value) (interface{}, error)
- func (d DateTime) DayOfMonth(v reflect.Value) (interface{}, error)
- func (d DateTime) DayOfWeek(v reflect.Value) (interface{}, error)
- func (d DateTime) MonthName(v reflect.Value) (interface{}, error)
- func (d DateTime) Time(v reflect.Value) (interface{}, error)
- func (d DateTime) TimePeriod(v reflect.Value) (interface{}, error)
- func (d DateTime) TimeZone(v reflect.Value) (interface{}, error)
- func (d DateTime) Timestamp(v reflect.Value) (interface{}, error)
- func (d DateTime) UnixTime(v reflect.Value) (interface{}, error)
- func (d DateTime) Year(v reflect.Value) (interface{}, error)
- type DateTimer
- type Dowser
- type EnumImpl
- type GenV2
- type Identifier
- type Internet
- func (internet Internet) DomainName(v reflect.Value) (interface{}, error)
- func (internet Internet) Email(v reflect.Value) (interface{}, error)
- func (internet Internet) IPv4(v reflect.Value) (interface{}, error)
- func (internet Internet) IPv6(v reflect.Value) (interface{}, error)
- func (internet Internet) MacAddress(v reflect.Value) (interface{}, error)
- func (internet Internet) Password(v reflect.Value) (interface{}, error)
- func (internet Internet) URL(v reflect.Value) (interface{}, error)
- func (internet Internet) UserName(v reflect.Value) (interface{}, error)
- type Lorem
- type Money
- type Networker
- type Payment
- type Person
- func (p Person) FirstName(v reflect.Value) (interface{}, error)
- func (p Person) FirstNameFemale(v reflect.Value) (interface{}, error)
- func (p Person) FirstNameMale(v reflect.Value) (interface{}, error)
- func (p Person) LastName(v reflect.Value) (interface{}, error)
- func (p Person) Name(v reflect.Value) (interface{}, error)
- func (p Person) TitleFeMale(v reflect.Value) (interface{}, error)
- func (p Person) TitleMale(v reflect.Value) (interface{}, error)
- type Phone
- type Phoner
- type Price
- type RegexImpl
- type Render
- type SnowImpl
- type Tag
- type TaggedFunction
- type TaggedFunctionV2
- type UUID
Constants ¶
const ( BaseDateFormat = "2006-01-02" TimeFormat = "15:04:05" MonthFormat = "January" YearFormat = "2006" DayFormat = "Monday" DayOfMonthFormat = "_2" TimePeriodFormat = "PM" )
These example values must use the reference time "Mon Jan 2 15:04:05 MST 2006" as described at https://gobyexample.com/time-formatting-parsing
const ( ID = "uuid_digit" HyphenatedID = "uuid_hyphenated" Regex = "regex" Enum = "enum" Snow = "snow" EmailTag = "email" MacAddressTag = "mac_address" DomainNameTag = "domain_name" UserNameTag = "username" URLTag = "url" IPV4Tag = "ipv4" IPV6Tag = "ipv6" PASSWORD = "password" LATITUDE = "lat" LONGITUDE = "long" CreditCardNumber = "cc_number" CreditCardType = "cc_type" PhoneNumber = "phone_number" ChinaMobileNumber = "china_mobile_number" TollFreeNumber = "toll_free_number" E164PhoneNumberTag = "e_164_phone_number" TitleMaleTag = "title_male" TitleFemaleTag = "title_female" FirstNameTag = "first_name" FirstNameMaleTag = "first_name_male" FirstNameFemaleTag = "first_name_female" LastNameTag = "last_name" NAME = "name" UnixTimeTag = "unix_time" DATE = "date" TIME = "time" MonthNameTag = "month_name" YEAR = "year" DayOfWeekTag = "day_of_week" DayOfMonthTag = "day_of_month" TIMESTAMP = "timestamp" CENTURY = "century" TIMEZONE = "timezone" TimePeriodTag = "time_period" WORD = "word" SENTENCE = "sentence" PARAGRAPH = "paragraph" CurrencyTag = "currency" AmountTag = "amount" AmountWithCurrencyTag = "amount_with_currency" SKIP = "-" Length = "len" BoundaryStart = "boundary_start" BoundaryEnd = "boundary_end" Equals = "=" )
Supported tags
const ( ErrValueNotPtr = "not a pointer value" ErrTagNotSupported = "tag unsupported" ErrTagAlreadyExists = "tag exists" ErrNotSupportedPointer = "use sample:=new(%s) faker.Fake(sample) instead" ErrSmallerThanZero = "size:%d is smaller than zero" ErrStartValueBiggerThanEnd = "start value can not be bigger than end value" ErrWrongFormattedTag = "tag \"%s\" is not written properly" ErrUnknownType = "unknown Type" ErrNotSupportedTypeForTag = "type is not supported by tag" )
Generic Error Messages for tags
ErrValueNotPtr: Error when value is not pointer ErrTagNotSupported: Error when tag is not supported ErrTagAlreadyExists: Error when tag exists and call AddProvider ErrNotSupportedPointer: Error when passing unsupported pointer
Variables ¶
var ( // LangThai represents the Thai range LangThai = []int64{3585, 3654} // LangArmenian represents the Armenian range LangArmenian = []int64{1328, 1423} // LangChinese represents the Chinese range LangChinese = []int64{19968, 40869} // LangJapaneseKatakana represents the Japanese Katakana range LangJapaneseKatakana = []int64{12449, 12531} // LangJapaneseHiragana represents the Japanese Hiragana range LangJapaneseHiragana = []int64{12353, 12435} // LangKoreanHangul represents the Korean Hangul range LangKoreanHangul = []int64{12593, 12686} // LangCyrillianRussian represents the Cyrillian Russian range LangCyrillianRussian = []int64{1025, 1169} // LangGreek represents the Greek range LangGreek = []int64{884, 974} )
Functions ¶
func AddProvider ¶
func AddProvider(tag string, provider TaggedFunction) error
AddProvider extend faker with tag to generate fake data with specified custom algorithm Example:
type Gondoruwo struct { Name string Locatadata int } type Sample struct { ID int64 `faker:"customIdFaker"` Gondoruwo Gondoruwo `faker:"gondoruwo"` Danger string `faker:"danger"` } func CustomGenerator() { // explicit faker.AddProvider("customIdFaker", func(v reflect.Value) (interface{}, error) { return int64(43), nil }) // functional faker.AddProvider("danger", func() faker.TaggedFunction { return func(v reflect.Value) (interface{}, error) { return "danger-ranger", nil } }()) faker.AddProvider("gondoruwo", func(v reflect.Value) (interface{}, error) { obj := Gondoruwo{ Name: "Power", Locatadata: 324, } return obj, nil }) } func main() { CustomGenerator() var sample Sample faker.Fake(&sample) fmt.Printf("%+v", sample) }
Will print
{ID:43 Gondoruwo:{Name:Power Locatadata:324} Danger:danger-ranger}
Notes: when using a custom provider make sure to return the same type as the field
func AddProviderV2 ¶
func AddProviderV2(tag string, provider TaggedFunctionV2) error
AddProviderV2 extend faker with tag to generate fake data with specified custom algorithm. It is similar to AddProvider but with a different provider type.
func AmountWithCurrency ¶
func AmountWithCurrency() string
AmountWithCurrency get fake AmountWithCurrency USD 49257.100
func CCNumber ¶
func CCNumber() string
CCNumber get a credit card number randomly in string (VISA, MasterCard, etc)
func CCType ¶
func CCType() string
CCType get a credit card type randomly in string (VISA, MasterCard, etc)
func Fake ¶
func Fake(a interface{}) error
Fake is the main function. Will generate a fake data based on your struct. You can use this for automation testing, or anything that need automated data. You don't need to Create your own data for your testing.
func FakeColumnWithTag ¶
func IntToString ¶
IntToString Convert slice int to slice string
func RandCJK ¶
RandCJK returns a string of CJK in length of size between start and end range in unicode.
func RandomUnixTime ¶
func RandomUnixTime() int64
RandomUnixTime is a helper function returning random Unix time
func SetNilIfLenIsZero ¶
func SetNilIfLenIsZero(setNil bool)
SetNilIfLenIsZero allows to set nil for the slice and maps, if size is 0.
func SetRandomMapAndSliceSize ¶
SetRandomMapAndSliceSize sets the size for maps and slices for random generation.
func SetRandomNumberBoundaries ¶
SetRandomNumberBoundaries sets boundary for random number generation
func SetRandomStringLength ¶
SetRandomStringLength sets a length for random string generation
func Timestamp ¶
func Timestamp() string
Timestamp get timestamp randomly in string format: 2006-01-02 15:04:05
func TitleFemale ¶
func TitleFemale() string
TitleFemale get a title female randomly in string ("Mrs.", "Ms.", "Miss", "Dr.", "Prof.", "Lady", "Queen", "Princess")
func TitleMale ¶
func TitleMale() string
TitleMale get a title male randomly in string ("Mr.", "Dr.", "Prof.", "Lord", "King", "Prince")
func TollFreePhoneNumber ¶
func TollFreePhoneNumber() string
TollFreePhoneNumber get fake TollFreePhoneNumber
Types ¶
type Address ¶
type Address struct{}
Address struct
type Addresser ¶
type Addresser interface { Latitude(v reflect.Value) (interface{}, error) Longitude(v reflect.Value) (interface{}, error) }
Addresser is logical layer for Address
type DataFaker ¶
type DataFaker interface { Word(v reflect.Value) (interface{}, error) Sentence(v reflect.Value) (interface{}, error) Paragraph(v reflect.Value) (interface{}, error) }
DataFaker generates randomized Words, Sentences and Paragraphs
type DateTime ¶
type DateTime struct { }
DateTime struct
func (DateTime) DayOfMonth ¶
DayOfMonth formats DateTime using example DayOfMonth const
func (DateTime) TimePeriod ¶
TimePeriod formats DateTime using example TimePeriod const
type DateTimer ¶
type DateTimer interface { UnixTime(v reflect.Value) (interface{}, error) Date(v reflect.Value) (interface{}, error) Time(v reflect.Value) (interface{}, error) MonthName(v reflect.Value) (interface{}, error) Year(v reflect.Value) (interface{}, error) DayOfWeek(v reflect.Value) (interface{}, error) DayOfMonth(v reflect.Value) (interface{}, error) Timestamp(v reflect.Value) (interface{}, error) Century(v reflect.Value) (interface{}, error) TimeZone(v reflect.Value) (interface{}, error) TimePeriod(v reflect.Value) (interface{}, error) }
A DateTimer contains random Time generators, returning time string in certain particular format
type Dowser ¶
type Dowser interface { TitleMale(v reflect.Value) (interface{}, error) TitleFeMale(v reflect.Value) (interface{}, error) FirstName(v reflect.Value) (interface{}, error) FirstNameMale(v reflect.Value) (interface{}, error) FirstNameFemale(v reflect.Value) (interface{}, error) LastName(v reflect.Value) (interface{}, error) Name(v reflect.Value) (interface{}, error) }
Dowser provides interfaces to generate random logical Names with their initials
type Identifier ¶
type Identifier interface { Digit(v reflect.Value) (interface{}, error) Hyphenated(v reflect.Value) (interface{}, error) }
Identifier ...
type Internet ¶
type Internet struct{}
Internet struct
func (Internet) DomainName ¶
DomainName generates random domain name
func (Internet) MacAddress ¶
MacAddress generates random MacAddress
type Lorem ¶
type Lorem struct { }
Lorem struct
func (Lorem) Paragraph ¶
Paragraph returns a series of sentences as a paragraph using the wordList const
type Money ¶
type Money interface { Currency(v reflect.Value) (interface{}, error) Amount(v reflect.Value) (interface{}, error) AmountWithCurrency(v reflect.Value) (interface{}, error) }
Money provides an interface to generate a custom price with or without a random currency code
type Networker ¶
type Networker interface { Email(v reflect.Value) (interface{}, error) MacAddress(v reflect.Value) (interface{}, error) DomainName(v reflect.Value) (interface{}, error) URL(v reflect.Value) (interface{}, error) UserName(v reflect.Value) (interface{}, error) IPv4(v reflect.Value) (interface{}, error) IPv6(v reflect.Value) (interface{}, error) Password(v reflect.Value) (interface{}, error) }
Networker is logical layer for Internet
type Payment ¶
type Payment struct{}
Payment struct
func (Payment) CreditCardNumber ¶
CreditCardNumber generated credit card number according to the card number rules
type Person ¶
type Person struct { }
Person struct
func (Person) FirstNameFemale ¶
FirstNameFemale returns first names for females
func (Person) FirstNameMale ¶
FirstNameMale returns first names for males
func (Person) TitleFeMale ¶
TitleFeMale generates random titles for females
type Phone ¶
type Phone struct { }
Phone struct
func (Phone) ChinaMobileNumber ¶
ChinaMobileNumber generates a China mobile number like 13812345678.
func (Phone) E164PhoneNumber ¶
E164PhoneNumber generates phone numbers of type: "+27113456789"
func (Phone) PhoneNumber ¶
PhoneNumber generates phone numbers of type: "201-886-0269"
type Phoner ¶
type Phoner interface { ChinaMobileNumber(v reflect.Value) (interface{}, error) PhoneNumber(v reflect.Value) (interface{}, error) TollFreePhoneNumber(v reflect.Value) (interface{}, error) E164PhoneNumber(v reflect.Value) (interface{}, error) }
Phoner serves overall tele-phonic contact generator
type Price ¶
type Price struct { }
Price struct
func (Price) Amount ¶
Amount returns a random floating price amount with a random precision of [1,2] up to (10**8 - 1)
func (Price) AmountWithCurrency ¶
AmountWithCurrency combines both price and currency together
type Render ¶
type Render interface { CreditCardType(v reflect.Value) (interface{}, error) CreditCardNumber(v reflect.Value) (interface{}, error) }
Render contains Whole Random Credit Card Generators with their types
type Tag ¶
type Tag struct { Type reflect.Type RawTag string Mapper string Opts map[string]string KeepOriginal bool }
Tag represents tag of faker related to the struct field
type TaggedFunction ¶
TaggedFunction used as the standard layout function for tag providers in struct. This type also can be used for custom provider.
type TaggedFunctionV2 ¶
TaggedFunctionV2 used as the standard layout function for tag providers in struct. This type also can be used for custom provider.