Documentation
¶
Index ¶
- Constants
- Variables
- 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 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 RandomElementFromSliceString(s []string) string
- func RandomInt(parameters ...int) (p []int, err error)
- func RandomInteger() int
- func RandomIntegerWithBoundary(boundary numberBoundary) int
- func RandomString(n int) string
- func RandomStringNumber(n int) string
- 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 SetPayment(p Render)
- func SetPhoner(p Phoner)
- func SetPrice(p Money)
- 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(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) Date(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) DayOfMonth(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) DayOfWeek(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) MonthName(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) Time(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) TimePeriod(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) TimeZone(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) Timestamp(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) UnixTime(ctx context.Context, v reflect.Value) (interface{}, error)
- func (d DateTime) Year(ctx context.Context, v reflect.Value) (interface{}, error)
- type DateTimer
- type Dowser
- type FakeGenerator
- func (f *FakeGenerator) AddFieldFilter(regexStr string)
- func (f *FakeGenerator) AddFieldTag(field, tag string)
- func (f *FakeGenerator) AddProvider(tag string, provider TaggedFunction) error
- func (f *FakeGenerator) FakeData(ctx context.Context, a interface{}) error
- func (f *FakeGenerator) SetNilIfLenIsZero(setNil bool)
- func (f *FakeGenerator) SetRandomMapAndSliceSize(size int) error
- func (f *FakeGenerator) SetRandomNumberBoundaries(start, end int) error
- func (f *FakeGenerator) SetRandomStringLength(size int) error
- func (f *FakeGenerator) SetTestRandZero(trz bool)
- type Identifier
- type Internet
- func (internet Internet) DomainName(ctx context.Context, v reflect.Value) (interface{}, error)
- func (internet Internet) Email(ctx context.Context, v reflect.Value) (interface{}, error)
- func (internet Internet) IPv4(ctx context.Context, v reflect.Value) (interface{}, error)
- func (internet Internet) IPv6(ctx context.Context, v reflect.Value) (interface{}, error)
- func (internet Internet) MacAddress(ctx context.Context, v reflect.Value) (interface{}, error)
- func (internet Internet) Password(ctx context.Context, v reflect.Value) (interface{}, error)
- func (internet Internet) URL(ctx context.Context, v reflect.Value) (interface{}, error)
- func (internet Internet) UserName(ctx context.Context, v reflect.Value) (interface{}, error)
- type Lorem
- type Money
- type Networker
- type Payment
- type Person
- func (p Person) FirstName(ctx context.Context, v reflect.Value) (interface{}, error)
- func (p Person) FirstNameFemale(ctx context.Context, v reflect.Value) (interface{}, error)
- func (p Person) FirstNameMale(ctx context.Context, v reflect.Value) (interface{}, error)
- func (p Person) LastName(ctx context.Context, v reflect.Value) (interface{}, error)
- func (p Person) Name(ctx context.Context, v reflect.Value) (interface{}, error)
- func (p Person) TitleFeMale(ctx context.Context, v reflect.Value) (interface{}, error)
- func (p Person) TitleMale(ctx context.Context, v reflect.Value) (interface{}, error)
- type Phone
- type Phoner
- type Price
- type Render
- type TaggedFunction
- 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" 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" 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
Variables ¶
var ( ErrUnsupportedKindPtr = "Unsupported kind: %s Change Without using * (pointer) in Field of %s" ErrUnsupportedKind = "Unsupported kind: %s" ErrValueNotPtr = "Not a pointer value" ErrTagNotSupported = "Tag unsupported" ErrTagAlreadyExists = "Tag exists" ErrMoreArguments = "Passed more arguments than is possible : (%d)" ErrNotSupportedPointer = "Use sample:=new(%s)\n faker.FakeData(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
ErrUnsupportedKindPtr: Error when get fake from ptr ErrUnsupportedKind: Error on passing unsupported kind ErrValueNotPtr: Error when value is not pointer ErrTagNotSupported: Error when tag is not supported ErrTagAlreadyExists: Error when tag exists and call AddProvider ErrMoreArguments: Error on passing more arguments ErrNotSupportedPointer: Error when passing unsupported pointer
Functions ¶
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 IntToString ¶
IntToString Convert slice int to slice string
func RandomInt ¶
RandomInt Get three parameters , only first mandatory and the rest are optional
If only set one parameter : This means the minimum number of digits and the total number If only set two parameters : First this is min digit and second max digit and the total number the difference between them If only three parameters: the third argument set Max count Digit
func RandomInteger ¶
func RandomInteger() int
RandomInteger returns a random integer between start and end boundary. [start, end)
func RandomIntegerWithBoundary ¶
func RandomIntegerWithBoundary(boundary numberBoundary) int
RandomIntegerWithBoundary returns a random integer between input start and end boundary. [start, end)
func RandomString ¶
func RandomStringNumber ¶
func RandomUnixTime ¶
func RandomUnixTime() int64
RandomUnixTime is a helper function returning random Unix time
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(ctx context.Context, v reflect.Value) (interface{}, error) Longitude(ctx context.Context, v reflect.Value) (interface{}, error) }
Addresser is logical layer for Address
func GetAddress ¶
func GetAddress() Addresser
GetAddress returns a new Addresser interface of Address
type DataFaker ¶
type DataFaker interface { Word(ctx context.Context, v reflect.Value) (interface{}, error) Sentence(ctx context.Context, v reflect.Value) (interface{}, error) Paragraph(ctx context.Context, 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(ctx context.Context, v reflect.Value) (interface{}, error) Date(ctx context.Context, v reflect.Value) (interface{}, error) Time(ctx context.Context, v reflect.Value) (interface{}, error) MonthName(ctx context.Context, v reflect.Value) (interface{}, error) Year(ctx context.Context, v reflect.Value) (interface{}, error) DayOfWeek(ctx context.Context, v reflect.Value) (interface{}, error) DayOfMonth(ctx context.Context, v reflect.Value) (interface{}, error) Timestamp(ctx context.Context, v reflect.Value) (interface{}, error) Century(ctx context.Context, v reflect.Value) (interface{}, error) TimeZone(ctx context.Context, v reflect.Value) (interface{}, error) TimePeriod(ctx context.Context, v reflect.Value) (interface{}, error) }
A DateTimer contains random Time generators, returning time string in certain particular format
func GetDateTimer ¶
func GetDateTimer() DateTimer
GetDateTimer returns a new DateTimer interface of DateTime
type Dowser ¶
type Dowser interface { TitleMale(ctx context.Context, v reflect.Value) (interface{}, error) TitleFeMale(ctx context.Context, v reflect.Value) (interface{}, error) FirstName(ctx context.Context, v reflect.Value) (interface{}, error) FirstNameMale(ctx context.Context, v reflect.Value) (interface{}, error) FirstNameFemale(ctx context.Context, v reflect.Value) (interface{}, error) LastName(ctx context.Context, v reflect.Value) (interface{}, error) Name(ctx context.Context, v reflect.Value) (interface{}, error) }
Dowser provides interfaces to generate random logical Names with their initials
type FakeGenerator ¶
type FakeGenerator struct {
// contains filtered or unexported fields
}
func NewFakeGenerator ¶
func NewFakeGenerator() *FakeGenerator
func (*FakeGenerator) AddFieldFilter ¶
func (f *FakeGenerator) AddFieldFilter(regexStr string)
func (*FakeGenerator) AddFieldTag ¶
func (f *FakeGenerator) AddFieldTag(field, tag string)
func (*FakeGenerator) AddProvider ¶
func (f *FakeGenerator) AddProvider(tag string, provider TaggedFunction) error
AddProvider extend faker with tag to generate fake data with specified custom algoritm 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.FakeData(&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 (*FakeGenerator) FakeData ¶
func (f *FakeGenerator) FakeData(ctx context.Context, a interface{}) error
FakeData 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 (*FakeGenerator) SetNilIfLenIsZero ¶
func (f *FakeGenerator) SetNilIfLenIsZero(setNil bool)
SetNilIfLenIsZero allows to set nil for the slice and maps, if size is 0.
func (*FakeGenerator) SetRandomMapAndSliceSize ¶
func (f *FakeGenerator) SetRandomMapAndSliceSize(size int) error
SetRandomMapAndSliceSize sets the size for maps and slices for random generation.
func (*FakeGenerator) SetRandomNumberBoundaries ¶
func (f *FakeGenerator) SetRandomNumberBoundaries(start, end int) error
SetRandomNumberBoundaries sets boundary for random number generation
func (*FakeGenerator) SetRandomStringLength ¶
func (f *FakeGenerator) SetRandomStringLength(size int) error
SetRandomStringLength sets a length for random string generation
func (*FakeGenerator) SetTestRandZero ¶
func (f *FakeGenerator) SetTestRandZero(trz bool)
type Identifier ¶
type Identifier interface { Digit(ctx context.Context, v reflect.Value) (interface{}, error) Hyphenated(ctx context.Context, 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(ctx context.Context, v reflect.Value) (interface{}, error) Amount(ctx context.Context, v reflect.Value) (interface{}, error) AmountWithCurrency(ctx context.Context, 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(ctx context.Context, v reflect.Value) (interface{}, error) MacAddress(ctx context.Context, v reflect.Value) (interface{}, error) DomainName(ctx context.Context, v reflect.Value) (interface{}, error) URL(ctx context.Context, v reflect.Value) (interface{}, error) UserName(ctx context.Context, v reflect.Value) (interface{}, error) IPv4(ctx context.Context, v reflect.Value) (interface{}, error) IPv6(ctx context.Context, v reflect.Value) (interface{}, error) Password(ctx context.Context, v reflect.Value) (interface{}, error) }
Networker is logical layer for Internet
func GetNetworker ¶
func GetNetworker() Networker
GetNetworker returns a new Networker interface of 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 retuns first names for females
func (Person) FirstNameMale ¶
FirstNameMale retuns first names for males
func (Person) TitleFeMale ¶
TitleFeMale generates random titles for females
type Phone ¶
type Phone struct { }
Phone struct
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 { PhoneNumber(ctx context.Context, v reflect.Value) (interface{}, error) TollFreePhoneNumber(ctx context.Context, v reflect.Value) (interface{}, error) E164PhoneNumber(ctx context.Context, 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(ctx context.Context, v reflect.Value) (interface{}, error) CreditCardNumber(ctx context.Context, v reflect.Value) (interface{}, error) }
Render contains Whole Random Credit Card Generators with their types
func GetPayment ¶
func GetPayment() Render
GetPayment returns a new Render interface of Payment struct
type TaggedFunction ¶
TaggedFunction used as the standard layout function for tag providers in struct. This type also can be used for custom provider.