data.generateRandomTime   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 4
nop 0
dl 0
loc 4
ccs 1
cts 1
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
package data
2
3
import (
4
	"fmt"
5
	"time"
6
7
	"github.com/gofrs/uuid"
8
	"syreclabs.com/go/faker"
9
)
10
11
type stringGeneratorFunction func(minLength int, maxLength int) string
12
13
func defaultFormattedStringGenerators(generator *rangedTextGenerator) map[string]stringGeneratorFunction {
14 1
	base64 := &base64Generator{generator: generator}
15 1
	html := &htmlGenerator{random: generator.random}
16
17 1
	return map[string]stringGeneratorFunction{
18
		"date": func(_ int, _ int) string {
19 1
			date := generateRandomTime()
20
21 1
			return fmt.Sprintf("%d-%02d-%02d", date.Year(), int(date.Month()), date.Day())
22
		},
23
24
		"date-time": func(_ int, _ int) string {
25 1
			date := generateRandomTime()
26
27 1
			return date.Format(time.RFC3339)
28
		},
29
30
		"email": func(_ int, _ int) string {
31 1
			return faker.Internet().Email()
32
		},
33
34
		"uri": func(_ int, _ int) string {
35 1
			return faker.Internet().Url()
36
		},
37
38
		"hostname": func(_ int, _ int) string {
39 1
			return faker.Internet().DomainName()
40
		},
41
42
		"ipv4": func(_ int, _ int) string {
43 1
			return faker.Internet().IpV4Address()
44
		},
45
46
		"ipv6": func(_ int, _ int) string {
47 1
			return faker.Internet().IpV6Address()
48
		},
49
50
		"uuid": func(_ int, _ int) string {
51 1
			return uuid.Must(uuid.NewV4()).String()
52
		},
53
54
		"byte": base64.GenerateBase64Text,
55
		"html": html.GenerateHTML,
56
	}
57
}
58
59
func generateRandomTime() time.Time {
60 1
	return faker.Date().Between(
61
		time.Date(1800, 1, 1, 1, 1, 1, 1, time.UTC),
62
		time.Date(2100, 1, 1, 1, 1, 1, 1, time.UTC),
63
	)
64
}
65