boa_vista 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1 -0
  3. data/lib/boa_vista/configuration.rb +5 -0
  4. data/lib/boa_vista/field/reader.rb +10 -0
  5. data/lib/boa_vista/field/writer.rb +20 -0
  6. data/lib/boa_vista/field.rb +15 -0
  7. data/lib/boa_vista/line.rb +64 -0
  8. data/lib/boa_vista/request/default.rb +33 -0
  9. data/lib/boa_vista/request/factory.rb +30 -0
  10. data/lib/boa_vista/request/layout/cnpj.rb +13 -0
  11. data/lib/boa_vista/request/layout/cpf.rb +11 -0
  12. data/lib/boa_vista/request/layout.rb +24 -0
  13. data/lib/boa_vista/request.rb +31 -0
  14. data/lib/boa_vista/response/layout/layout_138.rb +21 -0
  15. data/lib/boa_vista/response/layout/layout_221.rb +18 -0
  16. data/lib/boa_vista/response/layout/layout_249.rb +22 -0
  17. data/lib/boa_vista/response/layout/layout_282.rb +17 -0
  18. data/lib/boa_vista/response/layout/layout_283.rb +23 -0
  19. data/lib/boa_vista/response/layout/layout_285.rb +15 -0
  20. data/lib/boa_vista/response/layout/layout_353.rb +34 -0
  21. data/lib/boa_vista/response/layout/layout_354.rb +22 -0
  22. data/lib/boa_vista/response/layout/layout_901.rb +15 -0
  23. data/lib/boa_vista/response/layout/layout_999.rb +13 -0
  24. data/lib/boa_vista/response/layout.rb +29 -0
  25. data/lib/boa_vista/response.rb +21 -0
  26. data/lib/boa_vista/version.rb +3 -0
  27. data/lib/boa_vista.rb +47 -0
  28. data/spec/fixtures/base.txt +1 -0
  29. data/spec/fixtures/layout_138.txt +1 -0
  30. data/spec/fixtures/layout_221.txt +1 -0
  31. data/spec/fixtures/layout_249.txt +1 -0
  32. data/spec/fixtures/layout_282.txt +1 -0
  33. data/spec/fixtures/layout_283.txt +1 -0
  34. data/spec/fixtures/layout_285.txt +1 -0
  35. data/spec/fixtures/layout_353.txt +1 -0
  36. data/spec/fixtures/layout_354.txt +1 -0
  37. data/spec/fixtures/layout_901.txt +1 -0
  38. data/spec/fixtures/layout_999.txt +1 -0
  39. data/spec/fixtures/layout_cpf.txt +1 -0
  40. data/spec/lib/boa_vista/configuration_spec.rb +6 -0
  41. data/spec/lib/boa_vista/field/writer_spec.rb +22 -0
  42. data/spec/lib/boa_vista/field_spec.rb +2 -0
  43. data/spec/lib/boa_vista/line_spec.rb +58 -0
  44. data/spec/lib/boa_vista/request/default_spec.rb +40 -0
  45. data/spec/lib/boa_vista/request/factory_spec.rb +18 -0
  46. data/spec/lib/boa_vista/request/layout/cnpj_spec.rb +31 -0
  47. data/spec/lib/boa_vista/request/layout/cpf_spec.rb +28 -0
  48. data/spec/lib/boa_vista/request/layout_spec.rb +18 -0
  49. data/spec/lib/boa_vista/request_spec.rb +43 -0
  50. data/spec/lib/boa_vista/response/layout/layout_138_spec.rb +16 -0
  51. data/spec/lib/boa_vista/response/layout/layout_221_spec.rb +17 -0
  52. data/spec/lib/boa_vista/response/layout/layout_249_spec.rb +21 -0
  53. data/spec/lib/boa_vista/response/layout/layout_282_spec.rb +16 -0
  54. data/spec/lib/boa_vista/response/layout/layout_283_spec.rb +22 -0
  55. data/spec/lib/boa_vista/response/layout/layout_285_spec.rb +14 -0
  56. data/spec/lib/boa_vista/response/layout/layout_353_spec.rb +32 -0
  57. data/spec/lib/boa_vista/response/layout/layout_354_spec.rb +21 -0
  58. data/spec/lib/boa_vista/response/layout/layout_901_spec.rb +14 -0
  59. data/spec/lib/boa_vista/response/layout/layout_999_spec.rb +12 -0
  60. data/spec/lib/boa_vista/response/layout_spec.rb +2 -0
  61. data/spec/lib/boa_vista/response_spec.rb +18 -0
  62. data/spec/lib/boa_vista/version_spec.rb +3 -0
  63. data/spec/spec_helper.rb +16 -0
  64. metadata +200 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b90db56e32d157b4ded1579dd4f456ee182a036c
4
+ data.tar.gz: d8812931c93c0766ca1f0d3dee8ddf178191a792
5
+ SHA512:
6
+ metadata.gz: 118565a2398336d8448e5c8d97dad24459b37d79a6bbee49c6629276ede7615f87cb944db1a39ec8597cf4737c8d6f4ab70f3e64cb7e172c3e04c3d367eb296e
7
+ data.tar.gz: b68e54922554ad1d7cb98165ab8f12f69eeb4170d74e98f027ff50b7235e1f5e3b552eb7ec2d4f0a0b02cb108135f506843fe116173ccb75646305d82ca8f76c
data/README.md ADDED
@@ -0,0 +1 @@
1
+ # boa_vista
@@ -0,0 +1,5 @@
1
+ module BoaVista
2
+ class Configuration
3
+ attr_accessor :code, :password
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ module BoaVista
2
+ class Field
3
+ class Reader < BoaVista::Field
4
+ def call
5
+ @value = @value.slice(@range)
6
+ self
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,20 @@
1
+ module BoaVista
2
+ class Field
3
+ class Writer < BoaVista::Field
4
+ def call
5
+ return @value if @value.size == size
6
+ truncate.adjust.value
7
+ end
8
+
9
+ def truncate
10
+ @value = @value.slice(0..(size - 1))
11
+ self
12
+ end
13
+
14
+ def adjust
15
+ @value = @value.ljust(size)
16
+ self
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module BoaVista
2
+ class Field
3
+ attr_accessor :name, :value
4
+
5
+ def initialize(name, options = {})
6
+ @name = name
7
+ @range = options.fetch(:range)
8
+ @value = options.fetch(:value, '')
9
+ end
10
+
11
+ def size
12
+ (@range.last + 1) - @range.first
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,64 @@
1
+ module BoaVista
2
+ class Line
3
+ attr_accessor :layout
4
+
5
+ def self.prepare_for_read(value, layout)
6
+ new(value, layout)
7
+ end
8
+
9
+ def self.prepare_for_write(attributes, layout)
10
+ new(nil, layout, attributes)
11
+ end
12
+
13
+ def read
14
+ @layout.attributes.each do |field, options|
15
+ value = { value: @value }
16
+
17
+ @fields = @fields.merge(field =>
18
+ BoaVista::Field::Reader.new(field, options.merge(value)).call)
19
+ create_method_to_field(field)
20
+ end
21
+
22
+ self
23
+ end
24
+
25
+ def write
26
+ parse
27
+ @value = @layout.attributes.keys.inject('') do |line, attribute|
28
+ line << @fields.fetch(attribute).call
29
+ end
30
+ end
31
+
32
+ def parse
33
+ @layout.attributes.each do |field, options|
34
+ value_for_option = { value: @attributes[field] }
35
+
36
+ @fields = @fields.merge(field => BoaVista::Field::Writer.new(field, options.merge(value_for_option)))
37
+
38
+ create_method_to_field(field)
39
+ end
40
+
41
+ self
42
+ end
43
+
44
+ def create_method_to_field(name)
45
+ define_singleton_method(name) { @fields[name].value }
46
+ end
47
+
48
+ def self.detect_layout(value)
49
+ layout = value.slice(BoaVista::Response::Layout.range_of(:record_type))
50
+
51
+ Object.const_get "BoaVista::Response::Layout::Layout#{layout}"
52
+ end
53
+
54
+ private
55
+
56
+ def initialize(value, layout, attributes = {})
57
+ @value = value
58
+ @layout = layout
59
+
60
+ @attributes = attributes
61
+ @fields = {}
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,33 @@
1
+ module BoaVista
2
+ class Request
3
+ module Default
4
+ DEFAULT = {
5
+ transaction: 'CSR60',
6
+ version: '01',
7
+ response_type: '2',
8
+ response_transmission_type: 'C',
9
+ document_number: '',
10
+ end_text_indicator: 'X'
11
+ }.freeze
12
+
13
+ CPF = {
14
+ document_type: '1',
15
+ query: 'SINTON',
16
+ query_version: '01'
17
+ }.freeze
18
+
19
+ CNPJ = {
20
+ document_type: '2',
21
+ company_name: '',
22
+ facilitator_code: '',
23
+ query: 'CADPJ',
24
+ query_version: '03'
25
+ }.freeze
26
+
27
+ OPTIONS = {
28
+ reserved_requester: '',
29
+ reserved_boa_vista: ''
30
+ }.freeze
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ module BoaVista
2
+ class Request
3
+ module Factory
4
+ extend self
5
+
6
+ def build(*args)
7
+ (args + default_args).reverse.inject({}) do |acc, attrs|
8
+ acc.merge(attrs)
9
+ end
10
+ end
11
+
12
+ protected
13
+
14
+ def default_args
15
+ [
16
+ BoaVista::Request::Default::DEFAULT,
17
+ BoaVista::Request::Default::OPTIONS,
18
+ configuration
19
+ ]
20
+ end
21
+
22
+ def configuration
23
+ {
24
+ code: BoaVista.configuration.code,
25
+ password: BoaVista.configuration.password
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,13 @@
1
+ module BoaVista
2
+ class Request
3
+ module Layout::Cnpj
4
+ module_function
5
+
6
+ def attributes
7
+ BoaVista::Request::Layout.attributes.merge(company_name: { range: 84..133 },
8
+ facilitator_code: { range: 134..141 },
9
+ end_text_indicator: { range: 142..142 })
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ module BoaVista
2
+ class Request
3
+ module Layout::Cpf
4
+ module_function
5
+
6
+ def attributes
7
+ BoaVista::Request::Layout.attributes.merge(end_text_indicator: { range: 84..84 })
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,24 @@
1
+ module BoaVista
2
+ class Request
3
+ module Layout
4
+ module_function
5
+
6
+ def attributes
7
+ {
8
+ transaction: { range: 1..8 },
9
+ version: { range: 9..10 },
10
+ reserved_requester: { range: 11..20 },
11
+ reserved_boa_vista: { range: 21..40 },
12
+ code: { range: 41..48 },
13
+ password: { range: 49..56 },
14
+ query: { range: 57..64 },
15
+ query_version: { range: 65..66 },
16
+ response_type: { range: 67..67 },
17
+ response_transmission_type: { range: 68..68 },
18
+ document_type: { range: 69..69 },
19
+ document_number: { range: 70..83 }
20
+ }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,31 @@
1
+ module BoaVista
2
+ class Request
3
+ DOCUMENT_TYPE = {
4
+ cpf: 1,
5
+ cnpj: 2
6
+ }.freeze
7
+
8
+ def initialize(values)
9
+ @values = BoaVista::Request::Factory.build(values)
10
+ end
11
+
12
+ def create
13
+ write_line_with(layout)
14
+ end
15
+
16
+ private
17
+
18
+ def layout
19
+ case @values[:document_type].to_i
20
+ when DOCUMENT_TYPE[:cpf] then BoaVista::Request::Layout::Cpf
21
+ when DOCUMENT_TYPE[:cnpj] then BoaVista::Request::Layout::Cnpj
22
+ else
23
+ fail 'Invalid document type'
24
+ end
25
+ end
26
+
27
+ def write_line_with(layout)
28
+ BoaVista::Line.prepare_for_write(@values, layout).write
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,21 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout138
5
+ module_function
6
+
7
+ def initialize(fields)
8
+ @fields = fields
9
+ end
10
+
11
+ def attributes
12
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
13
+ document_number: { range: 78..91 },
14
+ company_name: { range: 92..206 },
15
+ city: { range: 207..246 },
16
+ uf: { range: 247..248 })
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout221
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
9
+ name: { range: 78..127 },
10
+ document: { range: 128..138 },
11
+ birthday_date: { range: 139..146 },
12
+ mothers_name: { range: 149..198 },
13
+ voter_registration: { range: 199..211 })
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout249
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(query_online: { range: 77..77 },
9
+ name: { range: 78..127 },
10
+ document: { range: 128..138 },
11
+ birthday_date: { range: 139..146 },
12
+ mothers_name: { range: 149..198 },
13
+ voter_registration: { range: 199..211 },
14
+ condition: { range: 212..212 },
15
+ query_date: { range: 213..220 },
16
+ query_time: { range: 221..226 },
17
+ protocol: { range: 227..246 })
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,17 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout282
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
9
+ sequence_number: { range: 78..79 },
10
+ company_name: { range: 80..129 },
11
+ document_type: { range: 130..130 },
12
+ document_number: { range: 131..144 })
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,23 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout283
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
9
+ sequence_number: { range: 78..82 },
10
+ company_name: { range: 83..132 },
11
+ document_type: { range: 133..133 },
12
+ document_number: { range: 134..147 },
13
+ entry_date: { range: 148..155 },
14
+ currency_type: { range: 156..156 },
15
+ value: { range: 157..171 },
16
+ function: { range: 172..191 },
17
+ signs: { range: 192..192 },
18
+ percentage: { range: 193..197 })
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout285
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
9
+ hive_activity_code: { range: 78..85 },
10
+ hive_activity_description: { range: 86..140 })
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,34 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout353
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
9
+ document_number: { range: 78..91 },
10
+ nire: { range: 92..102 },
11
+ company_name: { range: 103..217 },
12
+ condition: { range: 218..218 },
13
+ foundation_date: { range: 219..226 },
14
+ registration: { range: 227..240 },
15
+ registration_status: { range: 241..241 },
16
+ address: { range: 242..311 },
17
+ district: { range: 312..331 },
18
+ postal_code: { range: 332..339 },
19
+ city: { range: 340..379 },
20
+ uf: { range: 380..381 },
21
+ phone_1: { range: 382..401 },
22
+ phone_2: { range: 402..416 },
23
+ fax: { range: 417..431 },
24
+ ibge_code: { range: 432..439 },
25
+ legal_nature_code: { range: 440..447 },
26
+ legal_nature_description: { range: 448..502 },
27
+ segment: { range: 503..581 },
28
+ hive_activity_code: { range: 582..589 },
29
+ hive_activity_description: { range: 590..644 })
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,22 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout354
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
9
+ document_number: { range: 78..91 },
10
+ currency_social_capital: { range: 92..95 },
11
+ value_social_capital: { range: 96..110 },
12
+ home_organ: { range: 111..118 },
13
+ register_date: { range: 119..126 },
14
+ currency_current_capital: { range: 127..130 },
15
+ value_current_capital: { range: 131..145 },
16
+ current_organ: { range: 146..153 },
17
+ change_date: { range: 154..161 })
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,15 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout901
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 },
9
+ message_type: { range: 78..78 },
10
+ message: { range: 79..208 })
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module Layout999
5
+ module_function
6
+
7
+ def attributes
8
+ BoaVista::Response::Layout.attributes.merge(record: { range: 77..77 })
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,29 @@
1
+ module BoaVista
2
+ class Response
3
+ module Layout
4
+ module_function
5
+
6
+ def attributes
7
+ {
8
+ transaction: { range: 0..7 },
9
+ version: { range: 8..9 },
10
+ reserved_requester: { range: 10..19 },
11
+ reserved_boa_vista: { range: 20..39 },
12
+ code: { range: 40..47 },
13
+ query: { range: 48..55 },
14
+ query_version: { range: 56..57 },
15
+ response_type: { range: 58..58 },
16
+ response_code: { range: 59..59 },
17
+ query_number: { range: 60..66 },
18
+ text_size: { range: 67..70 },
19
+ record_size: { range: 71..73 },
20
+ record_type: { range: 74..76 }
21
+ }
22
+ end
23
+
24
+ def range_of(attribute)
25
+ attributes[attribute][:range]
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,21 @@
1
+ module BoaVista
2
+ class Response
3
+ def initialize(line)
4
+ @line = line
5
+ end
6
+
7
+ def read
8
+ read_line_with(layout)
9
+ end
10
+
11
+ private
12
+
13
+ def layout
14
+ BoaVista::Line.detect_layout(@line)
15
+ end
16
+
17
+ def read_line_with(layout)
18
+ BoaVista::Line.prepare_for_read(@line, layout).read
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,3 @@
1
+ module BoaVista
2
+ VERSION = '0.0.2'.freeze
3
+ end
data/lib/boa_vista.rb ADDED
@@ -0,0 +1,47 @@
1
+ require 'boa_vista/configuration'
2
+
3
+ require 'boa_vista/field'
4
+ require 'boa_vista/field/reader'
5
+ require 'boa_vista/field/writer'
6
+
7
+ require 'boa_vista/line'
8
+
9
+ require 'boa_vista/request'
10
+ require 'boa_vista/request/layout'
11
+ require 'boa_vista/request/layout/cpf'
12
+ require 'boa_vista/request/layout/cnpj'
13
+ require 'boa_vista/request/factory'
14
+
15
+ require 'boa_vista/response/layout'
16
+ require 'boa_vista/response'
17
+
18
+ require 'boa_vista/response/layout/layout_138'
19
+ require 'boa_vista/response/layout/layout_282'
20
+ require 'boa_vista/response/layout/layout_283'
21
+ require 'boa_vista/response/layout/layout_285'
22
+ require 'boa_vista/response/layout/layout_353'
23
+ require 'boa_vista/response/layout/layout_221'
24
+ require 'boa_vista/response/layout/layout_249'
25
+ require 'boa_vista/response/layout/layout_999'
26
+ require 'boa_vista/response/layout/layout_901'
27
+ require 'boa_vista/response/layout/layout_354'
28
+
29
+ module BoaVista
30
+ class << self
31
+ attr_reader :configuration
32
+ end
33
+
34
+ def self.configuration
35
+ @configuration ||= Configuration.new
36
+ end
37
+
38
+ def self.reset
39
+ @configuration = Configuration.new
40
+ end
41
+
42
+ def self.configure
43
+ yield(configuration)
44
+ end
45
+ end
46
+
47
+ require 'boa_vista/request/default'
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPP
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPS57487067000110RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCUU
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN3073086661025121982MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVVVVVVVVVVVVV
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN3073086661025121982MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMVVVVVVVVVVVVVCDDDDDDDDTTTTTTPPPPPPPPPPPPPPPPPPPP
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPS01CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCT57487067000110
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPS00001CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC157487067000110DDDDDDDDMVVVVVVVVVVVVVVVFFFFFFFFFFFFFFFFFFFFSGGGGG
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPSHHHHHHHHDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZ353SDDDDDDDDDDDDDDNNNNNNNNNNNCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCTFFFFFFFFRRRRRRRRRRRRRRSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBPPPPPPPPCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCUUPPPPPPPPPPPPPPPPPPPPHHHHHHHHHHHHHHHFFFFFFFFFFFFFFFGGGGGGGGNNNNNNNNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPSDDDDDDDDDDDDDDCCCCVVVVVVVVVVVVVVVOOOOOOOODDDDDDDDCCCCVVVVVVVVVVVVVVVOOOOOOOODDDDDDDD
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPSYMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
@@ -0,0 +1 @@
1
+ TTTTTTTTVVRRRRRRRRRRBBBBBBBBBBBBBBBBBBBBCCCCCCCCQQQQQQQQQVYCNNNNNNNTTTTZZZPPPS
@@ -0,0 +1 @@
1
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX131030944410
@@ -0,0 +1,6 @@
1
+ RSpec.describe BoaVista::Configuration do
2
+ it 'configures with code and password' do
3
+ expect(BoaVista.configuration.code).to eq('CODE')
4
+ expect(BoaVista.configuration.password).to eq('PASSWORD')
5
+ end
6
+ end