abstract class YamlFakeDataProvider<T : FakeDataProvider> : AbstractFakeDataProvider<T>
Fields
Name | Description |
---|---|
protected abstract yamlCategory: YamlCategory
|
Category for This is the key entry after the For example
then the yamlCategory would be YamlCategory.ADDRESS NB! If the secondaryCategory is NOT set,the dictionary filename should match the yamlCategory name,i.e. the file name should be |
protected open secondaryCategory: Category?
|
Secondary category for This is the key entry after the yamlCategory key in For example
then the yamlCategory would be YamlCategory.CREATURE, and the secondary Category.name would be TIP: Use Category.ofName helper function when needed. NB! If the secondaryCategory is set,the dictionary filename should match the Category.name of this secondaryCategory,i.e. the file name should be |
protected category: YamlCategory
|
Category of |
Constructors
<init>
constructor(fakerService: FakerService)
Abstract class for all concrete FakeDataProvider's that use yml files as data source.
Parameters
Name | Description |
---|---|
fakerService: FakerService
|
Methods
resolve
protected fun resolve(key: String): String
Returns resolved (unique) value for the parameter with the specified key.
Will return a unique value if the call to the function is prefixed with unique
property. Example:
faker.address.unique.city() => will return a unique value for the `city` parameter
Parameters
Name | Description |
---|---|
key: String
|
ReturnValue
Name | Description |
---|---|
String
|
resolve
protected fun resolve(keys: Pair<A, B>): String
Returns resolved (unique) value for the parameter with the specified pair of keys,
where first
is the "altKey" and second
is the "primaryKey".
This function can be used to resolve locale-specific keys that are not present in the default 'en' dictionaries.
An example usage (taken from Address.countryCode) looks something like this:
fun countryCode() = resolve("default_country_code" or "country_code")
Here, the "default_country_code"
is the key that is only present in the localized dictionaries,
which may or may not be present in the default 'en' dictionary,
and "country_code"
is the default key for this function which is defined in en/address.yml
dict file.
Will attempt to return a unique value if the call to the function is prefixed with unique
property. Example:
faker.address.unique.countryCode() => will return a unique value for the `country_code` parameter.
Parameters
Name | Description |
---|---|
keys: Pair<A, B>
|
ReturnValue
Name | Description |
---|---|
String
|
resolve
protected fun resolve(primaryKey: Category, secondaryKey: String): String
Returns resolved (unique) value for the parameter with the specified primaryKey and secondaryKey.
TIP: Can be useful for providers that override this secondaryCategory to use a compile-safe object instead of a string for the primaryKey.
Example:
class Minecraft internal constructor(fakerService: FakerService) : YamlFakeDataProvider(fakerService) {
override val yamlCategory = YamlCategory.GAMES
override val secondaryCategory: Category = Category.ofName("MINECRAFT")
override val localUniqueDataProvider = LocalUniqueDataProvider()
override val unique by UniqueProviderDelegate(localUniqueDataProvider, fakerService)
fun achievement() = resolve("minecraft", "achievement")
fun biome() = resolve(secondaryCategory, "biome")
}
Will return a unique value if the call to the function is prefixed with unique
property.
Example:
faker.address.unique.countryByCode(countryCode) => will return a unique value for the `city` parameter
Parameters
Name | Description |
---|---|
primaryKey: Category
|
|
secondaryKey: String
|
ReturnValue
Name | Description |
---|---|
String
|
resolve
protected fun resolve(primaryKey: String, secondaryKey: String): String
Returns resolved (unique) value for the parameter with the specified primaryKey and secondaryKey.
Will return a unique value if the call to the function is prefixed with unique
property.
Example:
faker.address.unique.countryByCode(countryCode) => will return a unique value for the `city` parameter
Parameters
Name | Description |
---|---|
primaryKey: String
|
|
secondaryKey: String
|
ReturnValue
Name | Description |
---|---|
String
|
resolve
protected fun resolve(primaryKey: Category, secondaryKey: String, thirdKey: String): String
Returns resolved (unique) value for the parameter with the specified primaryKey, secondaryKey and thirdKey
Will return a unique value if the call to the function is prefixed with unique
property.
Example:
faker.educator.tertiaryDegree(type) => will return a unique value for the `tertiaryDegree` parameter
Parameters
Name | Description |
---|---|
primaryKey: Category
|
|
secondaryKey: String
|
|
thirdKey: String
|
ReturnValue
Name | Description |
---|---|
String
|
resolve
protected fun resolve(primaryKey: String, secondaryKey: String, thirdKey: String): String
Returns resolved (unique) value for the parameter with the specified primaryKey, secondaryKey and thirdKey
Will return a unique value if the call to the function is prefixed with unique
property.
Example:
faker.educator.tertiaryDegree(type) => will return a unique value for the `tertiaryDegree` parameter
Parameters
Name | Description |
---|---|
primaryKey: String
|
|
secondaryKey: String
|
|
thirdKey: String
|
ReturnValue
Name | Description |
---|---|
String
|
Abstract class for all concrete FakeDataProvider's that use yml files as data source.