Skip to content

Commit

Permalink
[docs] Add 'Random Everything' secion on Extras page
Browse files Browse the repository at this point in the history
  • Loading branch information
serpro69 committed Oct 27, 2021
1 parent 482cc0a commit 533c86d
Show file tree
Hide file tree
Showing 2 changed files with 167 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,85 @@ class Extras : DescribeSpec({
}

describe("Random Everything") {
it("should generate random stuff") {
// START extras_random_everything_one
faker.random.nextBoolean()
faker.random.nextChar()
faker.random.nextDouble()
faker.random.nextFloat()
faker.random.nextInt()
faker.random.nextInt(bound = 100)
faker.random.nextInt(min = 100, max = 999)
faker.random.nextInt(intRange = (0..99))
faker.random.nextLetter(upper = false)
// END extras_random_everything_one
}

}
// START extras_random_instance_
// END extras_random_instance_
it("should generate random enum") {
// START extras_random_everything_three
faker.random.nextEnum<Foo>()
faker.random.nextEnum(enum = Foo::class.java)
faker.random.nextEnum(values = Foo.values())
faker.random.nextEnum(enum = Foo::class.java) { it != Foo.ONE }
faker.random.nextEnum<Foo>(excludeName = "ONE")
// END extras_random_everything_three
}

it("should generate random string of English chars") {
// START extras_random_everything_four
faker.random.randomAlphanumeric(
length = 10,
numericalChars = false
)
// END extras_random_everything_four
}

it("should generate random string in a given locale") {
// START extras_random_everything_five
faker.random.nextString(
length = 21,
locale = Locale.forLanguageTag("nb-NO"),
auxiliaryChars = true,
numericalChars = true
)
// END extras_random_everything_five
}

it("should generate random sublist") {
// START extras_random_everything_six
val list = List(100) { it }
faker.random.randomSublist(list, size = 10, shuffled = true)
// END extras_random_everything_six
}

it("should generate random subset") {
// START extras_random_everything_seven
val set = setOf(*List(100) { it }.toTypedArray())
faker.random.randomSubset(set, size = 10, shuffled = true)
// END extras_random_everything_seven
}

it("should return random element from a list") {
// START extras_random_everything_eight
val list = listOf(1, 2, 3)
faker.random.randomValue(list)
// END extras_random_everything_eight
}

it("should generate random UUID") {
// START extras_random_everything_nine
faker.random.nextUUID()
// END extras_random_everything_nine
}

}
})

// START extras_random_everything_two
enum class Foo {
ONE,
TWO,
FORTY_TWO
}
// END extras_random_everything_two

90 changes: 89 additions & 1 deletion docs/src/orchid/resources/wiki/extras.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,95 @@ The above has the following rules:

Faker provides its wrapper functions around `java.util.Random` (with some additional functionality that is not covered by `java.util.Random`) through `Faker().random` property.

==TODO examples==
### Wrappers around `java.util.Random`

{% tabs %}

{% kotlin "Kotlin" %}
{% filter compileAs('md') %}
```kotlin
{% snippet 'extras_random_everything_one' %}
```
{% endfilter %}
{% endkotlin %}

{% endtabs %}

### Random Enum Instance

{% tabs %}

{% kotlin "Kotlin" %}
{% filter compileAs('md') %}
```kotlin
{% snippet 'extras_random_everything_two' %}

{% snippet 'extras_random_everything_three' %}
```
{% endfilter %}
{% endkotlin %}

{% endtabs %}

### Random Strings

{% tabs %}

{% kotlin "Kotlin" %}
{% filter compileAs('md') %}
```kotlin
{% snippet 'extras_random_everything_four' %}

{% snippet 'extras_random_everything_five' %}
```
{% endfilter %}
{% endkotlin %}

{% endtabs %}

### Random sub-lists and sub-sets

{% tabs %}

{% kotlin "Kotlin" %}
{% filter compileAs('md') %}
```kotlin
{% snippet 'extras_random_everything_six' %}

{% snippet 'extras_random_everything_seven' %}
```
{% endfilter %}
{% endkotlin %}

{% endtabs %}

### Random element from a list/array

{% tabs %}

{% kotlin "Kotlin" %}
{% filter compileAs('md') %}
```kotlin
{% snippet 'extras_random_everything_eight' %}
```
{% endfilter %}
{% endkotlin %}

{% endtabs %}

### Random UUID

{% tabs %}

{% kotlin "Kotlin" %}
{% filter compileAs('md') %}
```kotlin
{% snippet 'extras_random_everything_nine' %}
```
{% endfilter %}
{% endkotlin %}

{% endtabs %}

{% btc %}{% endbtc %}

Expand Down

0 comments on commit 533c86d

Please sign in to comment.