laranja 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +0 -13
- data/.travis.yml +8 -1
- data/Gemfile +1 -1
- data/LICENSE.txt +1 -1
- data/README.md +14 -97
- data/Rakefile +5 -3
- data/laranja.gemspec +4 -3
- data/lib/laranja.rb +8 -26
- data/lib/laranja/data/pt-BR.yml +26 -0
- data/lib/laranja/generator.rb +43 -0
- data/lib/laranja/generators/pt-BR/documento.rb +37 -0
- data/lib/laranja/generators/pt-BR/endereco.rb +70 -0
- data/lib/laranja/generators/pt-BR/internet.rb +17 -0
- data/lib/laranja/generators/pt-BR/nome.rb +25 -0
- data/lib/laranja/generators/pt-BR/sexo.rb +13 -0
- data/lib/laranja/version.rb +1 -1
- data/test/pt-BR/test_documento.rb +65 -0
- data/test/pt-BR/test_endereco.rb +87 -0
- data/test/pt-BR/test_internet.rb +58 -0
- data/test/pt-BR/test_nome.rb +38 -0
- data/test/pt-BR/test_sexo.rb +21 -0
- data/test/test_helper.rb +5 -0
- metadata +57 -59
- data/.rspec +0 -2
- data/lib/laranja/address.rb +0 -77
- data/lib/laranja/cpf.rb +0 -24
- data/lib/laranja/gender.rb +0 -12
- data/lib/laranja/internet.rb +0 -26
- data/lib/laranja/name.rb +0 -33
- data/lib/static_data.yml +0 -26
- data/spec/address_spec.rb +0 -89
- data/spec/cpf_spec.rb +0 -62
- data/spec/gender_spec.rb +0 -23
- data/spec/internet_spec.rb +0 -77
- data/spec/name_spec.rb +0 -66
- data/spec/spec_helper.rb +0 -7
data/.rspec
DELETED
data/lib/laranja/address.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
module Laranja
|
2
|
-
class Address < Base
|
3
|
-
|
4
|
-
def self.city
|
5
|
-
strf [
|
6
|
-
'%city_prefix :name%last_name',
|
7
|
-
'%city_prefix :name%last_name %city_suffix',
|
8
|
-
'%city_prefix %female_city_prefix :name%female_first_name',
|
9
|
-
'%city_prefix %male_city_prefix :name%male_first_name',
|
10
|
-
'%city_prefix %female_city_prefix :name%female_first_name %city_suffix',
|
11
|
-
'%city_prefix %male_city_prefix :name%male_first_name %city_suffix',
|
12
|
-
':name%last_name %city_suffix',
|
13
|
-
'%female_city_prefix :name%female_first_name',
|
14
|
-
'%male_city_prefix :name%male_first_name',
|
15
|
-
'%female_city_prefix :name%female_first_name %city_suffix',
|
16
|
-
'%male_city_prefix :name%male_first_name %city_suffix'
|
17
|
-
].sample
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.district
|
21
|
-
strf [
|
22
|
-
'%district_prefix :name%last_name',
|
23
|
-
'%district_prefix :name%male_title :name%last_name',
|
24
|
-
'%district_prefix :name%female_title :name%last_name'
|
25
|
-
].sample
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.street
|
29
|
-
strf [
|
30
|
-
'%log_prefix :name%female_title :name%female_first_name :name%last_name',
|
31
|
-
'%log_prefix :name%female_first_name :name%last_name',
|
32
|
-
'%log_prefix :name%male_title :name%male_first_name :name%last_name :name%male_suffix',
|
33
|
-
'%log_prefix :name%male_title :name%male_first_name :name%last_name',
|
34
|
-
'%log_prefix :name%male_first_name :name%last_name :name%male_suffix',
|
35
|
-
'%log_prefix :name%male_first_name :name%last_name'
|
36
|
-
].sample
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.secondary
|
40
|
-
strf('%secondary ') + (1 + rand(999)).to_s
|
41
|
-
end
|
42
|
-
|
43
|
-
def self.number
|
44
|
-
(1 + rand(999)).to_s
|
45
|
-
end
|
46
|
-
|
47
|
-
def self.formatted_cep(ufab = nil)
|
48
|
-
cep_builder(true, rand(6) != 0, ufab)
|
49
|
-
end
|
50
|
-
|
51
|
-
def self.cep(ufab = nil)
|
52
|
-
cep_builder(false, rand(6) != 0, ufab)
|
53
|
-
end
|
54
|
-
|
55
|
-
def self.uf
|
56
|
-
strf '%uf_name'
|
57
|
-
end
|
58
|
-
|
59
|
-
def self.uf_abbr
|
60
|
-
strf '%uf_abbr'
|
61
|
-
end
|
62
|
-
|
63
|
-
private
|
64
|
-
|
65
|
-
def self.cep_builder(formatted, suffix = true, ufab = nil)
|
66
|
-
c = unufy(ufab, 'U####')
|
67
|
-
c += '-' if formatted
|
68
|
-
c += suffix ? '###' : '000'
|
69
|
-
c.gsub(/#/) { rand(10).to_s }
|
70
|
-
end
|
71
|
-
|
72
|
-
def self.unufy(ufab, str)
|
73
|
-
str.sub(/U/, ufab.nil? ? '#' : data('codigo_cep')[ufab.to_s.downcase].to_s)
|
74
|
-
end
|
75
|
-
|
76
|
-
end
|
77
|
-
end
|
data/lib/laranja/cpf.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
module Laranja
|
2
|
-
class CPF < Base
|
3
|
-
|
4
|
-
def self.cpf(uf = nil)
|
5
|
-
cpf = '########U'.sub(/U/, uf.nil? ? '#' : uf_code(uf)).gsub(/#/) { rand(10).to_s }
|
6
|
-
v = [(0..8).inject(0) { |sum, i| sum + cpf[i].to_i * (10 - i) } % 11]
|
7
|
-
v[0] = v[0] < 2 ? 0 : 11 - v[0]
|
8
|
-
v[1] = ((0..8).inject(0) { |sum, i| sum + cpf[i].to_i * (11 - i) } + v[0] * 2) % 11
|
9
|
-
v[1] = v[1] < 2 ? 0 : 11 - v[1]
|
10
|
-
cpf += v.join
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.formatted(uf = nil)
|
14
|
-
c = cpf(uf)
|
15
|
-
'%03d.%03d.%03d-%02d' % [ c[0..2].to_i, c[3..5].to_i, c[6..8].to_i, c[9..10].to_i ]
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def self.uf_code(uf)
|
21
|
-
data('codigo_uf')[uf.to_s.downcase].to_s
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/lib/laranja/gender.rb
DELETED
data/lib/laranja/internet.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Laranja
|
2
|
-
class Internet < Base
|
3
|
-
|
4
|
-
def self.email_for(name)
|
5
|
-
strf username_for(name) + '@%email'
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.email
|
9
|
-
email_for(Laranja::Name.name)
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.username_for(name, sep = ['', '.', '_'])
|
13
|
-
name.gsub(/[^a-zA-Z0-9\s]/, '').split.join(sep.sample).downcase
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.username
|
17
|
-
username_for(Laranja::Name.name)
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.password(min = 8, max = 128)
|
21
|
-
characters = ('0'.upto('9').to_a + 'A'.upto('Z').to_a + 'a'.upto('z').to_a)
|
22
|
-
size = min + rand(max - min)
|
23
|
-
(1..size).inject('') { |passcode, i| passcode + characters.sample }
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/lib/laranja/name.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
module Laranja
|
2
|
-
class Name < Base
|
3
|
-
|
4
|
-
def self.name(last_names = 1)
|
5
|
-
strf format_builder(Laranja::Gender.abbr, last_names, rand(9) == 0)
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.first_name
|
9
|
-
strf format_builder(Laranja::Gender.abbr, 0)
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.last_name
|
13
|
-
strf format_builder(Laranja::Gender.abbr, 1, false, false)
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def self.format_builder(gender, last_names = 1, suffix = false, first_name = true)
|
19
|
-
f = ''
|
20
|
-
f += genderfy(gender, 'first_name ') if first_name
|
21
|
-
f += '%last_name ' * last_names
|
22
|
-
# TODO: Only men have suffix?
|
23
|
-
f += genderfy(gender, 'suffix ') if suffix && gender.downcase == 'm'
|
24
|
-
f
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.genderfy(gender, attribute)
|
28
|
-
g = gender.downcase == 'f' ? 'female' : 'male'
|
29
|
-
"%#{g}_#{attribute}"
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
data/lib/static_data.yml
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
laranja:
|
2
|
-
gender:
|
3
|
-
name: ['Feminino', 'Masculino']
|
4
|
-
abbr: ['F', 'M']
|
5
|
-
address:
|
6
|
-
log_prefix: ['Alameda', 'Avenida', 'Marginal', 'Rodovia', 'Rua', 'Travessa', 'Viela']
|
7
|
-
city_prefix: ['Águas de', 'Campos de', 'Monte', 'Nova', 'Velha']
|
8
|
-
female_city_prefix: ['Nossa Senhora', 'Santa']
|
9
|
-
male_city_prefix: ['Santo', 'São']
|
10
|
-
city_suffix: ['do Norte', 'do Sul']
|
11
|
-
district_prefix: ['Bosque', 'Chácara', 'Jardim', 'Monte', 'Parque', 'Vila']
|
12
|
-
secondary: ['Ap', 'Casa', 'Lote', 'Quadra']
|
13
|
-
codigo_cep: { ac: 6, al: 5, ap: 6, am: 6, ba: 4, ce: 6, df: 7, es: 2, go: 7, ma: 6, mt: 7, ms: 7, mg: 3, pa: 6, pb: 5, pr: 8, pe: 5, pi: 6, rj: 2, rn: 5, rs: 9, ro: 7, rr: 6, sc: 8, sp: 1, se: 4, to: 7 }
|
14
|
-
uf_abbr: ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO']
|
15
|
-
uf_name: ['Acre', 'Alagoas', 'Amapá', 'Amazonas', 'Bahia', 'Ceará', 'Distrito Federal', 'Espírito Santo', 'Goiás', 'Maranhão', 'Mato Grosso', 'Mato Grosso do Sul', 'Minas Gerais', 'Pará', 'Paraíba', 'Paraná', 'Pernambuco', 'Piauí', 'Rio de Janeiro', 'Rio Grande do Norte', 'Rio Grande do Sul', 'Rondônia', 'Roraima', 'Santa Catarina', 'São Paulo', 'Sergipe', 'Tocantins']
|
16
|
-
internet:
|
17
|
-
email: ['bol.com.br', 'gmail.com', 'hotmail.com', 'live.com', 'terra.com.br', 'uol.com.br', 'yahoo.com']
|
18
|
-
name:
|
19
|
-
male_title: ['Barão', 'Conde', 'Dom', 'Dr', 'Duque', 'Engenheiro', 'General', 'Imperador', 'Presidente', 'Professor']
|
20
|
-
female_title: ['Baronesa', 'Condessa', 'Dra', 'Duquesa', 'Engenheira', 'Imperatriz', 'Princesa', 'Professora']
|
21
|
-
male_first_name: ['Alessandro', 'Alexandre', 'Antônio', 'Breno', 'Carlos', 'César', 'Danilo', 'Deneval', 'Eduardo', 'Esther', 'Elísio', 'Fábio', 'Fabrício', 'Félix', 'Feliciano', 'Frederico', 'Fabiano', 'Gustavo', 'Guilherme', 'Gúbio', 'Heitor', 'Hélio', 'Hugo', 'Ígor', 'João', 'Júlio', 'Kléber', 'Lucas', 'Marcos', 'Marcelo', 'Norberto', 'Paulo', 'Pablo', 'Pedro', 'Raul', 'Rafael', 'Ricardo', 'Roberto', 'Tertuliano', 'Vicente', 'Víctor', 'Yuri', 'Washington']
|
22
|
-
female_first_name: ['Alessandra', 'Aline', 'Bruna', 'Carla', 'Célia', 'Cecília', 'Dalila', 'Eduarda', 'Fabrícia', 'Felícia', 'Isabel', 'Isabela', 'Joana', 'Júlia', 'Janaína', 'Karla', 'Lorena', 'Lorraine', 'Larissa', 'Meire', 'Marcela', 'Margarida', 'Mércia', 'Márcia', 'Marli', 'Morgana', 'Maria', 'Natália', 'Núbia', 'Ofélia', 'Paula', 'Rafaela', 'Roberta', 'Sílvia', 'Suélen', 'Sara', 'Talita', 'Vitória']
|
23
|
-
last_name: ['Albuquerque', 'Barros', 'Batista', 'Braga', 'Carvalho', 'Costa', 'Cunha', 'Franco', 'Ladislau', 'Macedo', 'Martins', 'Melo', 'Moraes', 'Moreira', 'Nogueira', 'Oliveira', 'Pereira', 'Reis', 'Santos', 'Saraiva', 'Silva', 'Souza', 'Xavier']
|
24
|
-
male_suffix: ['Junior', 'Neto', 'Filho']
|
25
|
-
cpf:
|
26
|
-
codigo_uf: { ac: 2, al: 4, ap: 2, am: 2, ba: 5, ce: 3, df: 1, es: 7, go: 1, ma: 3, mt: 1, ms: 1, mg: 6, pa: 2, pb: 4, pr: 9, pe: 4, pi: 3, rj: 7, rn: 4, rs: 0, ro: 2, rr: 2, sc: 9, sp: 8, se: 5, to: 1 }
|
data/spec/address_spec.rb
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
shared_examples 'non empty string generator' do |str|
|
4
|
-
describe 'and' do
|
5
|
-
it 'return a string' do
|
6
|
-
expect(str).to be_a_kind_of(String)
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'returns a non empty string' do
|
10
|
-
expect(str).not_to be_empty
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe Laranja::Address do
|
16
|
-
describe '#uf' do
|
17
|
-
it_behaves_like 'non empty string generator', Laranja::Address.uf
|
18
|
-
end
|
19
|
-
|
20
|
-
describe '#uf_abbr' do
|
21
|
-
it_behaves_like 'non empty string generator', Laranja::Address.uf_abbr
|
22
|
-
it 'returns a 2 characters string' do
|
23
|
-
expect(Laranja::Address.uf_abbr.size).to eq(2)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe '#formatted_cep' do
|
28
|
-
it_behaves_like 'non empty string generator', Laranja::Address.formatted_cep
|
29
|
-
|
30
|
-
it 'returns an 8 characters string' do
|
31
|
-
expect(Laranja::Address.formatted_cep.size).to eq(9)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'returns a number only string' do
|
35
|
-
expect(Laranja::Address.formatted_cep).to match(/\d{5}-\d{3}/)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'has the UF digit if an UF is specified' do
|
39
|
-
expect(Laranja::Address.formatted_cep(:ce)[0].to_i).to eq(6)
|
40
|
-
expect(Laranja::Address.formatted_cep(:BA)[0].to_i).to eq(4)
|
41
|
-
expect(Laranja::Address.formatted_cep('rj')[0].to_i).to eq(2)
|
42
|
-
expect(Laranja::Address.formatted_cep('RS')[0].to_i).to eq(9)
|
43
|
-
expect(Laranja::Address.formatted_cep(:sp)[0].to_i).to eq(1)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
describe '#cep' do
|
48
|
-
it_behaves_like 'non empty string generator', Laranja::Address.cep
|
49
|
-
|
50
|
-
it 'returns an 8 characters string' do
|
51
|
-
expect(Laranja::Address.cep.size).to eq(8)
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'returns a number only string' do
|
55
|
-
expect(Laranja::Address.cep).to match(/\d{8}/)
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'has the UF digit if an UF is specified' do
|
59
|
-
expect(Laranja::Address.cep(:ce)[0].to_i).to eq(6)
|
60
|
-
expect(Laranja::Address.cep(:BA)[0].to_i).to eq(4)
|
61
|
-
expect(Laranja::Address.cep('rj')[0].to_i).to eq(2)
|
62
|
-
expect(Laranja::Address.cep('RS')[0].to_i).to eq(9)
|
63
|
-
expect(Laranja::Address.cep(:sp)[0].to_i).to eq(1)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
describe '#city' do
|
68
|
-
it_behaves_like 'non empty string generator', Laranja::Address.city
|
69
|
-
end
|
70
|
-
|
71
|
-
describe '#street' do
|
72
|
-
it_behaves_like 'non empty string generator', Laranja::Address.street
|
73
|
-
end
|
74
|
-
|
75
|
-
describe '#district' do
|
76
|
-
it_behaves_like 'non empty string generator', Laranja::Address.district
|
77
|
-
end
|
78
|
-
|
79
|
-
describe '#secondary' do
|
80
|
-
it_behaves_like 'non empty string generator', Laranja::Address.secondary
|
81
|
-
end
|
82
|
-
|
83
|
-
describe '#number' do
|
84
|
-
it_behaves_like 'non empty string generator', Laranja::Address.number
|
85
|
-
it 'returns a number only string' do
|
86
|
-
expect(Laranja::Address.number).to match(/\d+/)
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
data/spec/cpf_spec.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
shared_examples 'a cpf generator' do |cpf|
|
4
|
-
describe 'and' do
|
5
|
-
it 'return a string' do
|
6
|
-
expect(cpf).to be_a_kind_of(String)
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'return a string with 11 characters' do
|
10
|
-
expect(cpf.size).to eq(11)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'return a valid cpf' do
|
14
|
-
v1, v2 = 0, 0
|
15
|
-
for i in 0..8
|
16
|
-
v1 += cpf[i].to_i * (10 - i)
|
17
|
-
v2 += cpf[i].to_i * (11 - i)
|
18
|
-
end
|
19
|
-
v1 = v1 % 11
|
20
|
-
if v1 < 2
|
21
|
-
v1 = 0
|
22
|
-
else
|
23
|
-
v1 = 11 - v1
|
24
|
-
end
|
25
|
-
v2 += v1 * 2
|
26
|
-
v2 = v2 % 11
|
27
|
-
if v2 < 2
|
28
|
-
v2 = 0
|
29
|
-
else
|
30
|
-
v2 = 11 - v2
|
31
|
-
end
|
32
|
-
expect(cpf[-2].to_i).to eq(v1)
|
33
|
-
expect(cpf[-1].to_i).to eq(v2)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe Laranja::CPF do
|
39
|
-
describe '#cpf' do
|
40
|
-
it_behaves_like 'a cpf generator', Laranja::CPF.cpf
|
41
|
-
it_behaves_like 'a cpf generator', Laranja::CPF.cpf(:ce)
|
42
|
-
it_behaves_like 'a cpf generator', Laranja::CPF.cpf(:BA)
|
43
|
-
it_behaves_like 'a cpf generator', Laranja::CPF.cpf('rj')
|
44
|
-
it_behaves_like 'a cpf generator', Laranja::CPF.cpf('RS')
|
45
|
-
it_behaves_like 'a cpf generator', Laranja::CPF.cpf(:sp)
|
46
|
-
|
47
|
-
it 'has the UF digit if an UF is specified' do
|
48
|
-
expect(Laranja::CPF.cpf(:ce)[-3].to_i).to eq(3)
|
49
|
-
expect(Laranja::CPF.cpf(:BA)[-3].to_i).to eq(5)
|
50
|
-
expect(Laranja::CPF.cpf('rj')[-3].to_i).to eq(7)
|
51
|
-
expect(Laranja::CPF.cpf('RS')[-3].to_i).to eq(0)
|
52
|
-
expect(Laranja::CPF.cpf(:sp)[-3].to_i).to eq(8)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe '#formatted' do
|
57
|
-
it_behaves_like 'a cpf generator', Laranja::CPF.formatted.gsub(/\D+/, '')
|
58
|
-
it 'return a formatted cpf string' do
|
59
|
-
expect(Laranja::CPF.formatted).to match(/\d{3}\.\d{3}\.\d{3}-\d{2}/)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
data/spec/gender_spec.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Laranja::Gender do
|
4
|
-
describe '#gender' do
|
5
|
-
it 'returns a string' do
|
6
|
-
expect(Laranja::Gender.gender).to be_a_kind_of(String)
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'returns a non empty string' do
|
10
|
-
expect(Laranja::Gender.gender).not_to be_empty
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
describe '#abbr' do
|
15
|
-
it 'returns a string' do
|
16
|
-
expect(Laranja::Gender.abbr).to be_a_kind_of(String)
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'returns an 1 character string' do
|
20
|
-
expect(Laranja::Gender.abbr.size).to eq(1)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/spec/internet_spec.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Laranja::Internet do
|
4
|
-
describe '#email' do
|
5
|
-
it 'returns a string' do
|
6
|
-
expect(Laranja::Internet.email).to be_a_kind_of(String)
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'returns a valid email' do
|
10
|
-
expect(Laranja::Internet.email).to match(/^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
describe '#strfemail' do
|
15
|
-
|
16
|
-
let (:name) { 'John Doe' }
|
17
|
-
|
18
|
-
it 'returns a string' do
|
19
|
-
expect(Laranja::Internet.email_for(name)).to be_a_kind_of(String)
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'returns a valid email' do
|
23
|
-
expect(Laranja::Internet.email_for(name)).to match(/^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i)
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'returns an email for the given name' do
|
27
|
-
expect(Laranja::Internet.email_for(name)).to include('john')
|
28
|
-
expect(Laranja::Internet.email_for(name)).to include('doe')
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe '#username' do
|
33
|
-
it 'returns a string' do
|
34
|
-
expect(Laranja::Internet.username).to be_a_kind_of(String)
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'returns a non empty string' do
|
38
|
-
expect(Laranja::Internet.username).not_to be_empty
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '#strfusername' do
|
43
|
-
|
44
|
-
let (:name) { 'John Doe' }
|
45
|
-
|
46
|
-
it 'returns a string' do
|
47
|
-
expect(Laranja::Internet.username_for(name)).to be_a_kind_of(String)
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'returns an username for the given name' do
|
51
|
-
expect(Laranja::Internet.username_for(name)).to include('john')
|
52
|
-
expect(Laranja::Internet.username_for(name)).to include('doe')
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'returns an username for the given name and separator' do
|
56
|
-
expect(Laranja::Internet.username_for(name, ['-'])).to eq('john-doe')
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe '#password' do
|
61
|
-
it 'returns a string' do
|
62
|
-
expect(Laranja::Internet.password).to be_a_kind_of(String)
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'returns an alphanumeric string' do
|
66
|
-
expect(Laranja::Internet.password).not_to match(/\W/)
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'returns a password with minimum length' do
|
70
|
-
expect(Laranja::Internet.password(32).size).to be >= 32
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'returns a password with minimum and maximum length' do
|
74
|
-
expect(Laranja::Internet.password(64, 64).size).to eq(64)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|