codin_rep 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/lib/codin_rep.rb +86 -0
  3. data/lib/codin_rep/add_employee.rb +47 -0
  4. data/lib/codin_rep/command.rb +113 -0
  5. data/lib/codin_rep/communication.rb +124 -0
  6. data/lib/codin_rep/del_employee.rb +38 -0
  7. data/lib/codin_rep/employee_command.rb +93 -0
  8. data/lib/codin_rep/get_afd_header.rb +53 -0
  9. data/lib/codin_rep/get_records.rb +156 -0
  10. data/lib/codin_rep/get_time.rb +57 -0
  11. data/lib/codin_rep/set_time.rb +61 -0
  12. data/lib/codin_rep/time_util.rb +51 -0
  13. data/lib/codin_rep/version.rb +23 -0
  14. data/test/coverage/assets/0.10.0/application.css +799 -0
  15. data/test/coverage/assets/0.10.0/application.js +1707 -0
  16. data/test/coverage/assets/0.10.0/colorbox/border.png +0 -0
  17. data/test/coverage/assets/0.10.0/colorbox/controls.png +0 -0
  18. data/test/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
  19. data/test/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
  20. data/test/coverage/assets/0.10.0/favicon_green.png +0 -0
  21. data/test/coverage/assets/0.10.0/favicon_red.png +0 -0
  22. data/test/coverage/assets/0.10.0/favicon_yellow.png +0 -0
  23. data/test/coverage/assets/0.10.0/loading.gif +0 -0
  24. data/test/coverage/assets/0.10.0/magnify.png +0 -0
  25. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  26. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  27. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  28. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  29. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  30. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  31. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  32. data/test/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  33. data/test/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  34. data/test/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  35. data/test/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  36. data/test/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  37. data/test/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  38. data/test/coverage/index.html +6162 -0
  39. data/test/coverage/rcov/assets/0.2.3/jquery-1.3.2.min.js +19 -0
  40. data/test/coverage/rcov/assets/0.2.3/jquery.tablesorter.min.js +15 -0
  41. data/test/coverage/rcov/assets/0.2.3/print.css +12 -0
  42. data/test/coverage/rcov/assets/0.2.3/rcov.js +42 -0
  43. data/test/coverage/rcov/assets/0.2.3/screen.css +270 -0
  44. data/test/coverage/rcov/index.html +280 -0
  45. data/test/coverage/rcov/lib-codin_rep-add_employee_rb.html +200 -0
  46. data/test/coverage/rcov/lib-codin_rep-command_rb.html +398 -0
  47. data/test/coverage/rcov/lib-codin_rep-communication_rb.html +431 -0
  48. data/test/coverage/rcov/lib-codin_rep-del_employee_rb.html +173 -0
  49. data/test/coverage/rcov/lib-codin_rep-employee_command_rb.html +338 -0
  50. data/test/coverage/rcov/lib-codin_rep-get_afd_header_rb.html +218 -0
  51. data/test/coverage/rcov/lib-codin_rep-get_identification_rb.html +212 -0
  52. data/test/coverage/rcov/lib-codin_rep-get_records_rb.html +527 -0
  53. data/test/coverage/rcov/lib-codin_rep-get_time_rb.html +230 -0
  54. data/test/coverage/rcov/lib-codin_rep-set_employee_rb.html +248 -0
  55. data/test/coverage/rcov/lib-codin_rep-set_time_rb.html +242 -0
  56. data/test/coverage/rcov/lib-codin_rep-time_util_rb.html +212 -0
  57. data/test/coverage/rcov/lib-codin_rep-version_rb.html +128 -0
  58. data/test/coverage/rcov/lib-codin_rep_rb.html +317 -0
  59. data/test/mock_time_clock.rb +184 -0
  60. data/test/reports/TEST-GetTimeTest.xml +5 -0
  61. data/test/test_helper.rb +25 -0
  62. data/test/unit/add_employee_test.rb +43 -0
  63. data/test/unit/del_employee_test.rb +44 -0
  64. data/test/unit/get_employer_test.rb +48 -0
  65. data/test/unit/get_records_test.rb +45 -0
  66. data/test/unit/get_serial_number_test.rb +42 -0
  67. data/test/unit/get_time_test.rb +40 -0
  68. data/test/unit/set_time_test.rb +42 -0
  69. metadata +165 -0
@@ -0,0 +1,212 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>lib/codin_rep/get_identification.rb</title>
5
+ <link href="./assets/0.2.3/screen.css" media="all" rel="stylesheet" type="text/css" />
6
+ <link href="./assets/0.2.3/print.css" media="print" rel="stylesheet" type="text/css" />
7
+ <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
8
+ <script type="text/javascript" src="./assets/0.2.3/rcov.js"></script>
9
+ </head>
10
+ <body>
11
+ <h1>Src C0 Coverage Information - Simploco - RCov</h1>
12
+ <h2>lib/codin_rep/get_identification.rb</h2>
13
+
14
+ <div class="report_table_wrapper">
15
+ <table class='report' id='report_table'>
16
+ <thead>
17
+ <tr>
18
+ <th class="left_align">Name</th>
19
+ <th class="right_align">Total Lines</th>
20
+ <th class="right_align">Lines of Code</th>
21
+ <th class="left_align">Total Coverage</th>
22
+ <th class="left_align">Code Coverage</th>
23
+ </tr>
24
+ </thead>
25
+ <tbody>
26
+ <tr>
27
+ <td class="left_align"><a href="lib-codin_rep-get_identification_rb.html">lib/codin_rep/get_identification.rb</a></td>
28
+ <td class='right_align'><tt>51</tt></td>
29
+ <td class='right_align'><tt>51</tt></td>
30
+ <td class="left_align"><div class="percent_graph_legend"><tt class=''>0.00%</tt></div>
31
+ <div class="percent_graph">
32
+ <div class="covered" style="width:0px"></div>
33
+ <div class="uncovered" style="width:100px"></div>
34
+ </div></td>
35
+ <td class="left_align"><div class="percent_graph_legend"><tt class=''>0.00%</tt></div>
36
+ <div class="percent_graph">
37
+ <div class="covered" style="width:0px"></div>
38
+ <div class="uncovered" style="width:100px"></div>
39
+ </div></td>
40
+ </tr>
41
+ </tbody>
42
+ </table>
43
+ </div>
44
+
45
+ <h3>Key</h3>
46
+
47
+ <div class="key"><pre><span class='marked'>Code reported as executed by Ruby looks like this...</span><span class='marked1'>and this: this line is also marked as covered.</span><span class='inferred'>Lines considered as run by rcov, but not reported by Ruby, look like this,</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).</span><span class='uncovered'>Finally, here's a line marked as not executed.</span></pre></div>
48
+
49
+ <h3>Coverage Details</h3>
50
+
51
+ <table class="details">
52
+ <tbody>
53
+ <tr class="uncovered">
54
+ <td><pre><a name="line2">2</a> # -*- coding: utf-8 -*-</pre></td>
55
+ </tr>
56
+ <tr class="uncovered">
57
+ <td><pre><a name="line3">3</a> # codin_rep - Gem para acesso de REPs da Telebyte</pre></td>
58
+ </tr>
59
+ <tr class="uncovered">
60
+ <td><pre><a name="line4">4</a> # Copyright (C) 2016 O.S. Systems Softwares Ltda.</pre></td>
61
+ </tr>
62
+ <tr class="uncovered">
63
+ <td><pre><a name="line5">5</a> </pre></td>
64
+ </tr>
65
+ <tr class="uncovered">
66
+ <td><pre><a name="line6">6</a> # This program is free software: you can redistribute it and/or modify</pre></td>
67
+ </tr>
68
+ <tr class="uncovered">
69
+ <td><pre><a name="line7">7</a> # it under the terms of the GNU Affero General Public License as</pre></td>
70
+ </tr>
71
+ <tr class="uncovered">
72
+ <td><pre><a name="line8">8</a> # published by the Free Software Foundation, either version 3 of the</pre></td>
73
+ </tr>
74
+ <tr class="uncovered">
75
+ <td><pre><a name="line9">9</a> # License, or (at your option) any later version.</pre></td>
76
+ </tr>
77
+ <tr class="uncovered">
78
+ <td><pre><a name="line10">10</a> </pre></td>
79
+ </tr>
80
+ <tr class="uncovered">
81
+ <td><pre><a name="line11">11</a> # This program is distributed in the hope that it will be useful,</pre></td>
82
+ </tr>
83
+ <tr class="uncovered">
84
+ <td><pre><a name="line12">12</a> # but WITHOUT ANY WARRANTY; without even the implied warranty of</pre></td>
85
+ </tr>
86
+ <tr class="uncovered">
87
+ <td><pre><a name="line13">13</a> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</pre></td>
88
+ </tr>
89
+ <tr class="uncovered">
90
+ <td><pre><a name="line14">14</a> # GNU Affero General Public License for more details.</pre></td>
91
+ </tr>
92
+ <tr class="uncovered">
93
+ <td><pre><a name="line15">15</a> </pre></td>
94
+ </tr>
95
+ <tr class="uncovered">
96
+ <td><pre><a name="line16">16</a> # You should have received a copy of the GNU Affero General Public License</pre></td>
97
+ </tr>
98
+ <tr class="uncovered">
99
+ <td><pre><a name="line17">17</a> # along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pre></td>
100
+ </tr>
101
+ <tr class="uncovered">
102
+ <td><pre><a name="line18">18</a> </pre></td>
103
+ </tr>
104
+ <tr class="uncovered">
105
+ <td><pre><a name="line19">19</a> # Rua Clóvis Gularte Candiota 132, Pelotas-RS, Brasil.</pre></td>
106
+ </tr>
107
+ <tr class="uncovered">
108
+ <td><pre><a name="line20">20</a> # e-mail: contato@ossystems.com.br</pre></td>
109
+ </tr>
110
+ <tr class="uncovered">
111
+ <td><pre><a name="line21">21</a> </pre></td>
112
+ </tr>
113
+ <tr class="uncovered">
114
+ <td><pre><a name="line22">22</a> require &quot;afd_parser&quot;</pre></td>
115
+ </tr>
116
+ <tr class="uncovered">
117
+ <td><pre><a name="line23">23</a> require &quot;codin_rep/command&quot;</pre></td>
118
+ </tr>
119
+ <tr class="uncovered">
120
+ <td><pre><a name="line24">24</a> </pre></td>
121
+ </tr>
122
+ <tr class="uncovered">
123
+ <td><pre><a name="line25">25</a> module CodinRep</pre></td>
124
+ </tr>
125
+ <tr class="uncovered">
126
+ <td><pre><a name="line26">26</a> class GetIdentification &lt; Command</pre></td>
127
+ </tr>
128
+ <tr class="uncovered">
129
+ <td><pre><a name="line27">27</a> COMMAND_CODE = &quot;009Z&quot;.freeze</pre></td>
130
+ </tr>
131
+ <tr class="uncovered">
132
+ <td><pre><a name="line28">28</a> EXPECTED_HEADER = &#39;REP2359&#39;.freeze</pre></td>
133
+ </tr>
134
+ <tr class="uncovered">
135
+ <td><pre><a name="line29">29</a> </pre></td>
136
+ </tr>
137
+ <tr class="uncovered">
138
+ <td><pre><a name="line30">30</a> def generate_command_payload</pre></td>
139
+ </tr>
140
+ <tr class="uncovered">
141
+ <td><pre><a name="line31">31</a> &quot;&quot;</pre></td>
142
+ </tr>
143
+ <tr class="uncovered">
144
+ <td><pre><a name="line32">32</a> end</pre></td>
145
+ </tr>
146
+ <tr class="uncovered">
147
+ <td><pre><a name="line33">33</a> </pre></td>
148
+ </tr>
149
+ <tr class="uncovered">
150
+ <td><pre><a name="line34">34</a> def get_expected_response_size</pre></td>
151
+ </tr>
152
+ <tr class="uncovered">
153
+ <td><pre><a name="line35">35</a> 241</pre></td>
154
+ </tr>
155
+ <tr class="uncovered">
156
+ <td><pre><a name="line36">36</a> end</pre></td>
157
+ </tr>
158
+ <tr class="uncovered">
159
+ <td><pre><a name="line37">37</a> </pre></td>
160
+ </tr>
161
+ <tr class="uncovered">
162
+ <td><pre><a name="line38">38</a> def check_response_header</pre></td>
163
+ </tr>
164
+ <tr class="uncovered">
165
+ <td><pre><a name="line39">39</a> unless @response.match(/^#{EXPECTED_HEADER}/)</pre></td>
166
+ </tr>
167
+ <tr class="uncovered">
168
+ <td><pre><a name="line40">40</a> raise UnknownHeader.new @response[0..6], &#39;get identification&#39;, EXPECTED_HEADER</pre></td>
169
+ </tr>
170
+ <tr class="uncovered">
171
+ <td><pre><a name="line41">41</a> end</pre></td>
172
+ </tr>
173
+ <tr class="uncovered">
174
+ <td><pre><a name="line42">42</a> end</pre></td>
175
+ </tr>
176
+ <tr class="uncovered">
177
+ <td><pre><a name="line43">43</a> </pre></td>
178
+ </tr>
179
+ <tr class="uncovered">
180
+ <td><pre><a name="line44">44</a> def get_response_payload</pre></td>
181
+ </tr>
182
+ <tr class="uncovered">
183
+ <td><pre><a name="line45">45</a> @response_payload = @response[7..-1]</pre></td>
184
+ </tr>
185
+ <tr class="uncovered">
186
+ <td><pre><a name="line46">46</a> end</pre></td>
187
+ </tr>
188
+ <tr class="uncovered">
189
+ <td><pre><a name="line47">47</a> </pre></td>
190
+ </tr>
191
+ <tr class="uncovered">
192
+ <td><pre><a name="line48">48</a> def get_data_from_response_payload</pre></td>
193
+ </tr>
194
+ <tr class="uncovered">
195
+ <td><pre><a name="line49">49</a> AfdParser::Header.new @response_payload</pre></td>
196
+ </tr>
197
+ <tr class="uncovered">
198
+ <td><pre><a name="line50">50</a> end</pre></td>
199
+ </tr>
200
+ <tr class="uncovered">
201
+ <td><pre><a name="line51">51</a> end</pre></td>
202
+ </tr>
203
+ <tr class="uncovered">
204
+ <td><pre><a name="line52">52</a> end</pre></td>
205
+ </tr>
206
+ </tbody>
207
+ </table>
208
+
209
+ <p>Generated on 2017-01-12 14:52:23 -0200 with <a href="https://github.com/fguillen/simplecov-rcov">SimpleCov-RCov 0.2.3</a></p>
210
+
211
+ </body>
212
+ </html>
@@ -0,0 +1,527 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>lib/codin_rep/get_records.rb</title>
5
+ <link href="./assets/0.2.3/screen.css" media="all" rel="stylesheet" type="text/css" />
6
+ <link href="./assets/0.2.3/print.css" media="print" rel="stylesheet" type="text/css" />
7
+ <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
8
+ <script type="text/javascript" src="./assets/0.2.3/rcov.js"></script>
9
+ </head>
10
+ <body>
11
+ <h1>Src C0 Coverage Information - Simploco - RCov</h1>
12
+ <h2>lib/codin_rep/get_records.rb</h2>
13
+
14
+ <div class="report_table_wrapper">
15
+ <table class='report' id='report_table'>
16
+ <thead>
17
+ <tr>
18
+ <th class="left_align">Name</th>
19
+ <th class="right_align">Total Lines</th>
20
+ <th class="right_align">Lines of Code</th>
21
+ <th class="left_align">Total Coverage</th>
22
+ <th class="left_align">Code Coverage</th>
23
+ </tr>
24
+ </thead>
25
+ <tbody>
26
+ <tr>
27
+ <td class="left_align"><a href="lib-codin_rep-get_records_rb.html">lib/codin_rep/get_records.rb</a></td>
28
+ <td class='right_align'><tt>156</tt></td>
29
+ <td class='right_align'><tt>156</tt></td>
30
+ <td class="left_align"><div class="percent_graph_legend"><tt class=''>0.00%</tt></div>
31
+ <div class="percent_graph">
32
+ <div class="covered" style="width:0px"></div>
33
+ <div class="uncovered" style="width:100px"></div>
34
+ </div></td>
35
+ <td class="left_align"><div class="percent_graph_legend"><tt class=''>0.00%</tt></div>
36
+ <div class="percent_graph">
37
+ <div class="covered" style="width:0px"></div>
38
+ <div class="uncovered" style="width:100px"></div>
39
+ </div></td>
40
+ </tr>
41
+ </tbody>
42
+ </table>
43
+ </div>
44
+
45
+ <h3>Key</h3>
46
+
47
+ <div class="key"><pre><span class='marked'>Code reported as executed by Ruby looks like this...</span><span class='marked1'>and this: this line is also marked as covered.</span><span class='inferred'>Lines considered as run by rcov, but not reported by Ruby, look like this,</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).</span><span class='uncovered'>Finally, here's a line marked as not executed.</span></pre></div>
48
+
49
+ <h3>Coverage Details</h3>
50
+
51
+ <table class="details">
52
+ <tbody>
53
+ <tr class="uncovered">
54
+ <td><pre><a name="line2">2</a> # -*- coding: utf-8 -*-</pre></td>
55
+ </tr>
56
+ <tr class="uncovered">
57
+ <td><pre><a name="line3">3</a> # codin_rep - Gem para acesso de REPs da Telebyte</pre></td>
58
+ </tr>
59
+ <tr class="uncovered">
60
+ <td><pre><a name="line4">4</a> # Copyright (C) 2016 O.S. Systems Softwares Ltda.</pre></td>
61
+ </tr>
62
+ <tr class="uncovered">
63
+ <td><pre><a name="line5">5</a> </pre></td>
64
+ </tr>
65
+ <tr class="uncovered">
66
+ <td><pre><a name="line6">6</a> # This program is free software: you can redistribute it and/or modify</pre></td>
67
+ </tr>
68
+ <tr class="uncovered">
69
+ <td><pre><a name="line7">7</a> # it under the terms of the GNU Affero General Public License as</pre></td>
70
+ </tr>
71
+ <tr class="uncovered">
72
+ <td><pre><a name="line8">8</a> # published by the Free Software Foundation, either version 3 of the</pre></td>
73
+ </tr>
74
+ <tr class="uncovered">
75
+ <td><pre><a name="line9">9</a> # License, or (at your option) any later version.</pre></td>
76
+ </tr>
77
+ <tr class="uncovered">
78
+ <td><pre><a name="line10">10</a> </pre></td>
79
+ </tr>
80
+ <tr class="uncovered">
81
+ <td><pre><a name="line11">11</a> # This program is distributed in the hope that it will be useful,</pre></td>
82
+ </tr>
83
+ <tr class="uncovered">
84
+ <td><pre><a name="line12">12</a> # but WITHOUT ANY WARRANTY; without even the implied warranty of</pre></td>
85
+ </tr>
86
+ <tr class="uncovered">
87
+ <td><pre><a name="line13">13</a> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</pre></td>
88
+ </tr>
89
+ <tr class="uncovered">
90
+ <td><pre><a name="line14">14</a> # GNU Affero General Public License for more details.</pre></td>
91
+ </tr>
92
+ <tr class="uncovered">
93
+ <td><pre><a name="line15">15</a> </pre></td>
94
+ </tr>
95
+ <tr class="uncovered">
96
+ <td><pre><a name="line16">16</a> # You should have received a copy of the GNU Affero General Public License</pre></td>
97
+ </tr>
98
+ <tr class="uncovered">
99
+ <td><pre><a name="line17">17</a> # along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pre></td>
100
+ </tr>
101
+ <tr class="uncovered">
102
+ <td><pre><a name="line18">18</a> </pre></td>
103
+ </tr>
104
+ <tr class="uncovered">
105
+ <td><pre><a name="line19">19</a> # Rua Clóvis Gularte Candiota 132, Pelotas-RS, Brasil.</pre></td>
106
+ </tr>
107
+ <tr class="uncovered">
108
+ <td><pre><a name="line20">20</a> # e-mail: contato@ossystems.com.br</pre></td>
109
+ </tr>
110
+ <tr class="uncovered">
111
+ <td><pre><a name="line21">21</a> </pre></td>
112
+ </tr>
113
+ <tr class="uncovered">
114
+ <td><pre><a name="line22">22</a> require &quot;afd_parser&quot;</pre></td>
115
+ </tr>
116
+ <tr class="uncovered">
117
+ <td><pre><a name="line23">23</a> require &quot;codin_rep/command&quot;</pre></td>
118
+ </tr>
119
+ <tr class="uncovered">
120
+ <td><pre><a name="line24">24</a> </pre></td>
121
+ </tr>
122
+ <tr class="uncovered">
123
+ <td><pre><a name="line25">25</a> module CodinRep</pre></td>
124
+ </tr>
125
+ <tr class="uncovered">
126
+ <td><pre><a name="line26">26</a> class GetRecords &lt; Command</pre></td>
127
+ </tr>
128
+ <tr class="uncovered">
129
+ <td><pre><a name="line27">27</a> class UnknownAfdRecord &lt; StandardError</pre></td>
130
+ </tr>
131
+ <tr class="uncovered">
132
+ <td><pre><a name="line28">28</a> def initialize(afd_record_id)</pre></td>
133
+ </tr>
134
+ <tr class="uncovered">
135
+ <td><pre><a name="line29">29</a> @afd_record_id = afd_record_id</pre></td>
136
+ </tr>
137
+ <tr class="uncovered">
138
+ <td><pre><a name="line30">30</a> end</pre></td>
139
+ </tr>
140
+ <tr class="uncovered">
141
+ <td><pre><a name="line31">31</a> </pre></td>
142
+ </tr>
143
+ <tr class="uncovered">
144
+ <td><pre><a name="line32">32</a> def message</pre></td>
145
+ </tr>
146
+ <tr class="uncovered">
147
+ <td><pre><a name="line33">33</a> message = &quot;The REP returned an unknown AFD record of id &#39;#{@afd_record_id}&#39;&quot;</pre></td>
148
+ </tr>
149
+ <tr class="uncovered">
150
+ <td><pre><a name="line34">34</a> end</pre></td>
151
+ </tr>
152
+ <tr class="uncovered">
153
+ <td><pre><a name="line35">35</a> end</pre></td>
154
+ </tr>
155
+ <tr class="uncovered">
156
+ <td><pre><a name="line36">36</a> </pre></td>
157
+ </tr>
158
+ <tr class="uncovered">
159
+ <td><pre><a name="line37">37</a> START_COMMAND = &quot;PGREP0289&quot;.freeze</pre></td>
160
+ </tr>
161
+ <tr class="uncovered">
162
+ <td><pre><a name="line38">38</a> NEXT_RECORD_COMMAND = &quot;PGREP009,&quot;.freeze</pre></td>
163
+ </tr>
164
+ <tr class="uncovered">
165
+ <td><pre><a name="line39">39</a> START_HEADER = &#39;REP0029[&#39;.freeze</pre></td>
166
+ </tr>
167
+ <tr class="uncovered">
168
+ <td><pre><a name="line40">40</a> END_HEADER = &#39;REP0029]&#39;.freeze</pre></td>
169
+ </tr>
170
+ <tr class="uncovered">
171
+ <td><pre><a name="line41">41</a> AFD_DATA_START_HEADER = &#39;REP3029&#39;.freeze</pre></td>
172
+ </tr>
173
+ <tr class="uncovered">
174
+ <td><pre><a name="line42">42</a> AFD_DATA_CONTINUATION_HEADER = &#39;REP0379&#39;.freeze</pre></td>
175
+ </tr>
176
+ <tr class="uncovered">
177
+ <td><pre><a name="line43">43</a> AFD_DATA_ONLY_HEADER = &#39;REP2359&#39;.freeze</pre></td>
178
+ </tr>
179
+ <tr class="uncovered">
180
+ <td><pre><a name="line44">44</a> AFD_DATA_END_HEADER = &#39;REP0909&#39;.freeze</pre></td>
181
+ </tr>
182
+ <tr class="uncovered">
183
+ <td><pre><a name="line45">45</a> HEADER_SIZE = 8</pre></td>
184
+ </tr>
185
+ <tr class="uncovered">
186
+ <td><pre><a name="line46">46</a> AFD_SIZES_BY_TYPE = {</pre></td>
187
+ </tr>
188
+ <tr class="uncovered">
189
+ <td><pre><a name="line47">47</a> &#39;1&#39; =&gt; 233,</pre></td>
190
+ </tr>
191
+ <tr class="uncovered">
192
+ <td><pre><a name="line48">48</a> &#39;2&#39; =&gt; 300,</pre></td>
193
+ </tr>
194
+ <tr class="uncovered">
195
+ <td><pre><a name="line49">49</a> &#39;3&#39; =&gt; 35,</pre></td>
196
+ </tr>
197
+ <tr class="uncovered">
198
+ <td><pre><a name="line50">50</a> &#39;4&#39; =&gt; 35,</pre></td>
199
+ </tr>
200
+ <tr class="uncovered">
201
+ <td><pre><a name="line51">51</a> &#39;5&#39; =&gt; 88</pre></td>
202
+ </tr>
203
+ <tr class="uncovered">
204
+ <td><pre><a name="line52">52</a> }.freeze</pre></td>
205
+ </tr>
206
+ <tr class="uncovered">
207
+ <td><pre><a name="line53">53</a> </pre></td>
208
+ </tr>
209
+ <tr class="uncovered">
210
+ <td><pre><a name="line54">54</a> def initialize(first_id, *args)</pre></td>
211
+ </tr>
212
+ <tr class="uncovered">
213
+ <td><pre><a name="line55">55</a> super(*args)</pre></td>
214
+ </tr>
215
+ <tr class="uncovered">
216
+ <td><pre><a name="line56">56</a> @first_id = first_id.to_i</pre></td>
217
+ </tr>
218
+ <tr class="uncovered">
219
+ <td><pre><a name="line57">57</a> @first_id = 1 if @first_id &lt; 1</pre></td>
220
+ </tr>
221
+ <tr class="uncovered">
222
+ <td><pre><a name="line58">58</a> end</pre></td>
223
+ </tr>
224
+ <tr class="uncovered">
225
+ <td><pre><a name="line59">59</a> </pre></td>
226
+ </tr>
227
+ <tr class="uncovered">
228
+ <td><pre><a name="line60">60</a> def execute</pre></td>
229
+ </tr>
230
+ <tr class="uncovered">
231
+ <td><pre><a name="line61">61</a> @command_data = get_first_command</pre></td>
232
+ </tr>
233
+ <tr class="uncovered">
234
+ <td><pre><a name="line62">62</a> @response = &quot;&quot;</pre></td>
235
+ </tr>
236
+ <tr class="uncovered">
237
+ <td><pre><a name="line63">63</a> @parser = AfdParser.new(false)</pre></td>
238
+ </tr>
239
+ <tr class="uncovered">
240
+ <td><pre><a name="line64">64</a> @records = []</pre></td>
241
+ </tr>
242
+ <tr class="uncovered">
243
+ <td><pre><a name="line65">65</a> </pre></td>
244
+ </tr>
245
+ <tr class="uncovered">
246
+ <td><pre><a name="line66">66</a> get_afd_records</pre></td>
247
+ </tr>
248
+ <tr class="uncovered">
249
+ <td><pre><a name="line67">67</a> </pre></td>
250
+ </tr>
251
+ <tr class="uncovered">
252
+ <td><pre><a name="line68">68</a> return @parser</pre></td>
253
+ </tr>
254
+ <tr class="uncovered">
255
+ <td><pre><a name="line69">69</a> end</pre></td>
256
+ </tr>
257
+ <tr class="uncovered">
258
+ <td><pre><a name="line70">70</a> </pre></td>
259
+ </tr>
260
+ <tr class="uncovered">
261
+ <td><pre><a name="line71">71</a> def get_afd_records</pre></td>
262
+ </tr>
263
+ <tr class="uncovered">
264
+ <td><pre><a name="line72">72</a> begin</pre></td>
265
+ </tr>
266
+ <tr class="uncovered">
267
+ <td><pre><a name="line73">73</a> while !@command_data.match(/^#{NEXT_RECORD_COMMAND}/) || @response != END_HEADER</pre></td>
268
+ </tr>
269
+ <tr class="uncovered">
270
+ <td><pre><a name="line74">74</a> @response = communicate!</pre></td>
271
+ </tr>
272
+ <tr class="uncovered">
273
+ <td><pre><a name="line75">75</a> current_record = nil</pre></td>
274
+ </tr>
275
+ <tr class="uncovered">
276
+ <td><pre><a name="line76">76</a> if @has_response_payload</pre></td>
277
+ </tr>
278
+ <tr class="uncovered">
279
+ <td><pre><a name="line77">77</a> raw_record = get_response_payload</pre></td>
280
+ </tr>
281
+ <tr class="uncovered">
282
+ <td><pre><a name="line78">78</a> current_record = @parser.parse_line(raw_record, nil)</pre></td>
283
+ </tr>
284
+ <tr class="uncovered">
285
+ <td><pre><a name="line79">79</a> end</pre></td>
286
+ </tr>
287
+ <tr class="uncovered">
288
+ <td><pre><a name="line80">80</a> @records &lt;&lt; current_record</pre></td>
289
+ </tr>
290
+ <tr class="uncovered">
291
+ <td><pre><a name="line81">81</a> </pre></td>
292
+ </tr>
293
+ <tr class="uncovered">
294
+ <td><pre><a name="line82">82</a> @command_data = NEXT_RECORD_COMMAND</pre></td>
295
+ </tr>
296
+ <tr class="uncovered">
297
+ <td><pre><a name="line83">83</a> end</pre></td>
298
+ </tr>
299
+ <tr class="uncovered">
300
+ <td><pre><a name="line84">84</a> ensure</pre></td>
301
+ </tr>
302
+ <tr class="uncovered">
303
+ <td><pre><a name="line85">85</a> @communication.close if @communication</pre></td>
304
+ </tr>
305
+ <tr class="uncovered">
306
+ <td><pre><a name="line86">86</a> end</pre></td>
307
+ </tr>
308
+ <tr class="uncovered">
309
+ <td><pre><a name="line87">87</a> </pre></td>
310
+ </tr>
311
+ <tr class="uncovered">
312
+ <td><pre><a name="line88">88</a> afd_start_date = @parser.first_creation_date</pre></td>
313
+ </tr>
314
+ <tr class="uncovered">
315
+ <td><pre><a name="line89">89</a> afd_end_date = @parser.last_creation_date</pre></td>
316
+ </tr>
317
+ <tr class="uncovered">
318
+ <td><pre><a name="line90">90</a> </pre></td>
319
+ </tr>
320
+ <tr class="uncovered">
321
+ <td><pre><a name="line91">91</a> employer_command = CodinRep::GetAfdHeader.new(@host_address, @tcp_port)</pre></td>
322
+ </tr>
323
+ <tr class="uncovered">
324
+ <td><pre><a name="line92">92</a> employer = employer_command.execute</pre></td>
325
+ </tr>
326
+ <tr class="uncovered">
327
+ <td><pre><a name="line93">93</a> </pre></td>
328
+ </tr>
329
+ <tr class="uncovered">
330
+ <td><pre><a name="line94">94</a> @parser.create_header(employer.employer_type, employer.employer_document,</pre></td>
331
+ </tr>
332
+ <tr class="uncovered">
333
+ <td><pre><a name="line95">95</a> employer.employer_cei, employer.employer_name,</pre></td>
334
+ </tr>
335
+ <tr class="uncovered">
336
+ <td><pre><a name="line96">96</a> employer.rep_serial_number, afd_start_date,</pre></td>
337
+ </tr>
338
+ <tr class="uncovered">
339
+ <td><pre><a name="line97">97</a> afd_end_date, Time.now)</pre></td>
340
+ </tr>
341
+ <tr class="uncovered">
342
+ <td><pre><a name="line98">98</a> @parser.create_trailer</pre></td>
343
+ </tr>
344
+ <tr class="uncovered">
345
+ <td><pre><a name="line99">99</a> end</pre></td>
346
+ </tr>
347
+ <tr class="uncovered">
348
+ <td><pre><a name="line100">100</a> </pre></td>
349
+ </tr>
350
+ <tr class="uncovered">
351
+ <td><pre><a name="line101">101</a> def get_expected_response_size</pre></td>
352
+ </tr>
353
+ <tr class="uncovered">
354
+ <td><pre><a name="line102">102</a> proc do |partial_data|</pre></td>
355
+ </tr>
356
+ <tr class="uncovered">
357
+ <td><pre><a name="line103">103</a> @has_response_payload = true</pre></td>
358
+ </tr>
359
+ <tr class="uncovered">
360
+ <td><pre><a name="line104">104</a> case partial_data</pre></td>
361
+ </tr>
362
+ <tr class="uncovered">
363
+ <td><pre><a name="line105">105</a> when START_HEADER</pre></td>
364
+ </tr>
365
+ <tr class="uncovered">
366
+ <td><pre><a name="line106">106</a> @has_response_payload = false</pre></td>
367
+ </tr>
368
+ <tr class="uncovered">
369
+ <td><pre><a name="line107">107</a> expected_size = 0</pre></td>
370
+ </tr>
371
+ <tr class="uncovered">
372
+ <td><pre><a name="line108">108</a> when END_HEADER</pre></td>
373
+ </tr>
374
+ <tr class="uncovered">
375
+ <td><pre><a name="line109">109</a> @has_response_payload = false</pre></td>
376
+ </tr>
377
+ <tr class="uncovered">
378
+ <td><pre><a name="line110">110</a> expected_size = 0</pre></td>
379
+ </tr>
380
+ <tr class="uncovered">
381
+ <td><pre><a name="line111">111</a> when /^#{AFD_DATA_START_HEADER}/</pre></td>
382
+ </tr>
383
+ <tr class="uncovered">
384
+ <td><pre><a name="line112">112</a> @start_header_received = true</pre></td>
385
+ </tr>
386
+ <tr class="uncovered">
387
+ <td><pre><a name="line113">113</a> expected_size = HEADER_SIZE + get_afd_data_type_size(partial_data)</pre></td>
388
+ </tr>
389
+ <tr class="uncovered">
390
+ <td><pre><a name="line114">114</a> when /^#{AFD_DATA_ONLY_HEADER}/</pre></td>
391
+ </tr>
392
+ <tr class="uncovered">
393
+ <td><pre><a name="line115">115</a> @start_header_received = true</pre></td>
394
+ </tr>
395
+ <tr class="uncovered">
396
+ <td><pre><a name="line116">116</a> expected_size = HEADER_SIZE + get_afd_data_type_size(partial_data)</pre></td>
397
+ </tr>
398
+ <tr class="uncovered">
399
+ <td><pre><a name="line117">117</a> when /^#{AFD_DATA_CONTINUATION_HEADER}/</pre></td>
400
+ </tr>
401
+ <tr class="uncovered">
402
+ <td><pre><a name="line118">118</a> expected_size = HEADER_SIZE + get_afd_data_type_size(partial_data)</pre></td>
403
+ </tr>
404
+ <tr class="uncovered">
405
+ <td><pre><a name="line119">119</a> when /^#{AFD_DATA_END_HEADER}/</pre></td>
406
+ </tr>
407
+ <tr class="uncovered">
408
+ <td><pre><a name="line120">120</a> @end_header_received = true</pre></td>
409
+ </tr>
410
+ <tr class="uncovered">
411
+ <td><pre><a name="line121">121</a> expected_size = HEADER_SIZE + get_afd_data_type_size(partial_data)</pre></td>
412
+ </tr>
413
+ <tr class="uncovered">
414
+ <td><pre><a name="line122">122</a> else</pre></td>
415
+ </tr>
416
+ <tr class="uncovered">
417
+ <td><pre><a name="line123">123</a> if partial_data.size &lt; HEADER_SIZE</pre></td>
418
+ </tr>
419
+ <tr class="uncovered">
420
+ <td><pre><a name="line124">124</a> # new command, get only the header:</pre></td>
421
+ </tr>
422
+ <tr class="uncovered">
423
+ <td><pre><a name="line125">125</a> expected_size = HEADER_SIZE</pre></td>
424
+ </tr>
425
+ <tr class="uncovered">
426
+ <td><pre><a name="line126">126</a> else</pre></td>
427
+ </tr>
428
+ <tr class="uncovered">
429
+ <td><pre><a name="line127">127</a> header = partial_data[0..(HEADER_SIZE-1)]</pre></td>
430
+ </tr>
431
+ <tr class="uncovered">
432
+ <td><pre><a name="line128">128</a> command_name = self.class.name.split(&#39;::&#39;)[1]</pre></td>
433
+ </tr>
434
+ <tr class="uncovered">
435
+ <td><pre><a name="line129">129</a> raise UnknownHeader.new(header, command_name)</pre></td>
436
+ </tr>
437
+ <tr class="uncovered">
438
+ <td><pre><a name="line130">130</a> end</pre></td>
439
+ </tr>
440
+ <tr class="uncovered">
441
+ <td><pre><a name="line131">131</a> end</pre></td>
442
+ </tr>
443
+ <tr class="uncovered">
444
+ <td><pre><a name="line132">132</a> expected_size</pre></td>
445
+ </tr>
446
+ <tr class="uncovered">
447
+ <td><pre><a name="line133">133</a> end</pre></td>
448
+ </tr>
449
+ <tr class="uncovered">
450
+ <td><pre><a name="line134">134</a> end</pre></td>
451
+ </tr>
452
+ <tr class="uncovered">
453
+ <td><pre><a name="line135">135</a> </pre></td>
454
+ </tr>
455
+ <tr class="uncovered">
456
+ <td><pre><a name="line136">136</a> def get_afd_data_type_size(partial_data)</pre></td>
457
+ </tr>
458
+ <tr class="uncovered">
459
+ <td><pre><a name="line137">137</a> if partial_data.size &lt; 17</pre></td>
460
+ </tr>
461
+ <tr class="uncovered">
462
+ <td><pre><a name="line138">138</a> expected_size = 17</pre></td>
463
+ </tr>
464
+ <tr class="uncovered">
465
+ <td><pre><a name="line139">139</a> else</pre></td>
466
+ </tr>
467
+ <tr class="uncovered">
468
+ <td><pre><a name="line140">140</a> afd_record_id = partial_data[16]</pre></td>
469
+ </tr>
470
+ <tr class="uncovered">
471
+ <td><pre><a name="line141">141</a> expected_size = AFD_SIZES_BY_TYPE[afd_record_id]</pre></td>
472
+ </tr>
473
+ <tr class="uncovered">
474
+ <td><pre><a name="line142">142</a> raise UnknownAfdRecord.new(afd_record_id) if expected_size.nil?</pre></td>
475
+ </tr>
476
+ <tr class="uncovered">
477
+ <td><pre><a name="line143">143</a> end</pre></td>
478
+ </tr>
479
+ <tr class="uncovered">
480
+ <td><pre><a name="line144">144</a> expected_size</pre></td>
481
+ </tr>
482
+ <tr class="uncovered">
483
+ <td><pre><a name="line145">145</a> end</pre></td>
484
+ </tr>
485
+ <tr class="uncovered">
486
+ <td><pre><a name="line146">146</a> </pre></td>
487
+ </tr>
488
+ <tr class="uncovered">
489
+ <td><pre><a name="line147">147</a> def get_response_payload</pre></td>
490
+ </tr>
491
+ <tr class="uncovered">
492
+ <td><pre><a name="line148">148</a> @response_payload = @response[7..-1]</pre></td>
493
+ </tr>
494
+ <tr class="uncovered">
495
+ <td><pre><a name="line149">149</a> end</pre></td>
496
+ </tr>
497
+ <tr class="uncovered">
498
+ <td><pre><a name="line150">150</a> </pre></td>
499
+ </tr>
500
+ <tr class="uncovered">
501
+ <td><pre><a name="line151">151</a> def get_first_command</pre></td>
502
+ </tr>
503
+ <tr class="uncovered">
504
+ <td><pre><a name="line152">152</a> &quot;#{START_COMMAND}#{@first_id.to_s.rjust(9, &#39;0&#39;)}99999999&quot;</pre></td>
505
+ </tr>
506
+ <tr class="uncovered">
507
+ <td><pre><a name="line153">153</a> end</pre></td>
508
+ </tr>
509
+ <tr class="uncovered">
510
+ <td><pre><a name="line154">154</a> end</pre></td>
511
+ </tr>
512
+ <tr class="uncovered">
513
+ <td><pre><a name="line155">155</a> </pre></td>
514
+ </tr>
515
+ <tr class="uncovered">
516
+ <td><pre><a name="line156">156</a> require &quot;codin_rep/get_afd_header&quot;</pre></td>
517
+ </tr>
518
+ <tr class="uncovered">
519
+ <td><pre><a name="line157">157</a> end</pre></td>
520
+ </tr>
521
+ </tbody>
522
+ </table>
523
+
524
+ <p>Generated on 2017-01-19 17:18:28 -0200 with <a href="https://github.com/fguillen/simplecov-rcov">SimpleCov-RCov 0.2.3</a></p>
525
+
526
+ </body>
527
+ </html>