ucert 0.2.57

Sign up to get free protection for your applications and to get access to all the features.
Files changed (252) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +134 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.rdoc +61 -0
  5. data/Rakefile +8 -0
  6. data/TODO +5 -0
  7. data/bin/ad_dump +74 -0
  8. data/bin/ad_update +48 -0
  9. data/bin/adgrep +149 -0
  10. data/bin/adp_dump +70 -0
  11. data/bin/aix_dump +69 -0
  12. data/bin/audiolog_dump +69 -0
  13. data/bin/bloomberg_dump +69 -0
  14. data/bin/check21_dump +69 -0
  15. data/bin/citidirect_be_dump +69 -0
  16. data/bin/citidirect_sec_dump +69 -0
  17. data/bin/citrixsf_dump +70 -0
  18. data/bin/clear_par_dump +70 -0
  19. data/bin/cmbrun_ny_dump +76 -0
  20. data/bin/cvm_dump +70 -0
  21. data/bin/db_direct_dump +69 -0
  22. data/bin/egifts_dump +68 -0
  23. data/bin/equinix_dump +69 -0
  24. data/bin/frb_dump +69 -0
  25. data/bin/go_contact_dump +16 -0
  26. data/bin/jpm_dump +69 -0
  27. data/bin/madison535_dump +70 -0
  28. data/bin/mantis_dump +79 -0
  29. data/bin/prime_dump +79 -0
  30. data/bin/sage100_dump +69 -0
  31. data/bin/sharefile_dump +69 -0
  32. data/bin/som_dump +74 -0
  33. data/bin/stb_dump +69 -0
  34. data/bin/swift_dump +79 -0
  35. data/bin/swift_online_dump +69 -0
  36. data/bin/t24_dump +79 -0
  37. data/bin/vpn_dump +69 -0
  38. data/bin/wms_dump +79 -0
  39. data/bin/yst_dump +79 -0
  40. data/data/ad/ad_delta.txt +94 -0
  41. data/data/ad/hosts +421 -0
  42. data/data/ad/hosts.old +597 -0
  43. data/data/ad/hosts_old +597 -0
  44. data/data/ad/ldap_computer.txt +19028 -0
  45. data/data/ad/ldap_person.txt +41241 -0
  46. data/data/adp/Active Employee Report.xlsx +0 -0
  47. data/data/adp/adp_user_map.txt +141 -0
  48. data/data/aix/EGIFTS1.txt +239 -0
  49. data/data/aix/NYSWIFT1.txt +222 -0
  50. data/data/aix/T24_APP1.txt +300 -0
  51. data/data/aix/T24_DBP.txt +252 -0
  52. data/data/aix/aix_user_map.txt +46 -0
  53. data/data/alliance_swift/Swift_Operator_Details.xlsx +0 -0
  54. data/data/alliance_swift/Swift_Operator_Profiles_Details.xlsx +0 -0
  55. data/data/alliance_swift/swift_operator_map.txt +22 -0
  56. data/data/audiolog/Capture_audiolog.PNG +0 -0
  57. data/data/bloomberg/AccountData.csv +2 -0
  58. data/data/bloomberg/Capture_SID_download.PNG +0 -0
  59. data/data/bloomberg/current_subscriptions.csv +11 -0
  60. data/data/check21/Capture_check21_users.PNG +0 -0
  61. data/data/citidirect_be/Capture.PNG +0 -0
  62. data/data/citidirect_be/Capture_new.PNG +0 -0
  63. data/data/citidirect_be/Capture_new_new.PNG +0 -0
  64. data/data/citidirect_be/UserProfileEntitlementReport.pdf +0 -0
  65. data/data/citidirect_be/UserProfileEntitlementsReport.old.xlsx +0 -0
  66. data/data/citidirect_be/UserProfileEntitlementsReport.xlsx +0 -0
  67. data/data/citidirect_be/be_user_map.txt +11 -0
  68. data/data/citidirect_securities/Capture.PNG +0 -0
  69. data/data/citidirect_securities/User_Entitlements_Report___CLNT.dat +19 -0
  70. data/data/citidirect_securities/User_Entitlements_Report___CLNT.xml +75 -0
  71. data/data/citidirect_securities/citidirect_securities_user_map.txt +10 -0
  72. data/data/citrix_sharefile/ShareFile_Access_Report.xlsx +0 -0
  73. data/data/citrix_sharefile/sharefile_user_map.txt +33 -0
  74. data/data/clear_par/ClearPar User Report.xlsx +0 -0
  75. data/data/clear_par/clear_par_user_map.txt +25 -0
  76. data/data/cmbrun_ny/CMBNY_Position_Rpt.xlsx +0 -0
  77. data/data/cmbrun_ny/CMBRUN_USER_RPT.xlsx +0 -0
  78. data/data/cmbrun_ny/Capture_cmbrun.PNG +0 -0
  79. data/data/cmbrun_ny/Capture_cmbrun_position.PNG +0 -0
  80. data/data/cmbrun_ny/crny_access_user_map.txt +55 -0
  81. data/data/cvm/cvm_user_func.xlsx +0 -0
  82. data/data/cvm/cvm_user_list.xlsx +0 -0
  83. data/data/cvm/cvm_user_map.txt +56 -0
  84. data/data/cvm/cvm_user_role.xlsx +0 -0
  85. data/data/db_direct/Capture_main.PNG +0 -0
  86. data/data/db_direct/Capture_rpt.PNG +0 -0
  87. data/data/db_direct/accountpermission.xlsx +0 -0
  88. data/data/db_direct/db_direct_user_map.txt +8 -0
  89. data/data/db_direct/di_direct_user_map.txt +0 -0
  90. data/data/db_direct/userfulldetail_2016010813232300644912.pdf +0 -0
  91. data/data/equinix/Secured Access List_CHINA MERCHANTS BANK.xlsx +0 -0
  92. data/data/equinix/equinix_user_map.txt +29 -0
  93. data/data/fis_egifts/CHINA_MERCHANTS_BANK_-_USER_ACCOUNT_FUNCTION_REPORT.xlsx +0 -0
  94. data/data/fis_egifts/egifts_user_map.txt +113 -0
  95. data/data/fis_prime/Prime_Operator_Rights_Report.xml +41958 -0
  96. data/data/fis_prime/Prime_Operator_Status_Report.xml +1827 -0
  97. data/data/fis_prime/Prime_Operators_and_Roles_Report.xml +1505 -0
  98. data/data/fis_prime/Prime_Rights_by_Role_Report.xml +22726 -0
  99. data/data/fis_prime/prime_user_map.txt +77 -0
  100. data/data/frb/FRB_Subscriber_Roles_Report.xlsx +0 -0
  101. data/data/frb/frb_user_map.txt +22 -0
  102. data/data/go_contact/go_contact.xlsx +0 -0
  103. data/data/go_contact/go_user_map.txt +134 -0
  104. data/data/go_contact/title_level_map.txt +141 -0
  105. data/data/jpm_access/Capture.PNG +0 -0
  106. data/data/jpm_access/jpm_access_user_map.txt +13 -0
  107. data/data/jpm_access/jpm_user_entitlements_details.txt +194 -0
  108. data/data/jpm_access/jpm_user_groupentitlements_details.txt +2 -0
  109. data/data/madison535/535madison_bldg_pass.xlsx +0 -0
  110. data/data/madison535/535madison_bldg_pass_2.xlsx +0 -0
  111. data/data/madison535/madison535_user_map.txt +191 -0
  112. data/data/mantis/Mantis_AccessLevels.xlsx +0 -0
  113. data/data/mantis/Mantis_ActiveUsers_Rpt.xlsx +0 -0
  114. data/data/mantis/mantis_access_user_map.txt +128 -0
  115. data/data/sage100/Capture_Sage100_Rpt.PNG +0 -0
  116. data/data/sage100/Capture_Sage100_Rpt_2.PNG +0 -0
  117. data/data/sage100/SY_UserReport_RolePreferencesDetails.xlsx +0 -0
  118. data/data/sage100/SY_UserReport_RoleTaskPermissionsDetails.xlsx +0 -0
  119. data/data/sage100/sy_user_map.txt +14 -0
  120. data/data/som/som_user_map.txt +40 -0
  121. data/data/som/som_user_report.csv +329 -0
  122. data/data/stb/STB_USERS.csv +177 -0
  123. data/data/stb/STB_USERS.pdf +0 -0
  124. data/data/stb/stb_user_map.txt +33 -0
  125. data/data/swift_online/UserReport.xlsx +0 -0
  126. data/data/swift_online/swo_access_user_map.txt +18 -0
  127. data/data/t24/T24_Grp_Rpt.csv +484 -0
  128. data/data/t24/T24_User_Rpt.csv +567 -0
  129. data/data/t24/t24_grp.xml +2904 -0
  130. data/data/t24/t24_user_map.txt +197 -0
  131. data/data/t24/t24_usr.xml +9628 -0
  132. data/data/vpn/Capture_VPN.PNG +0 -0
  133. data/data/wms/role_rpt.txt +451 -0
  134. data/data/wms/user_rpt.txt +55 -0
  135. data/data/wms/wms_user_map.txt +55 -0
  136. data/data/yst/YiShiTong_Org.csv +21 -0
  137. data/data/yst/YiShiTong_User.csv +163 -0
  138. data/data/yst/yst_user_map.txt +163 -0
  139. data/demos/filter_email.rb +19 -0
  140. data/demos/idm_ad_reload.rb +164 -0
  141. data/lib/ucert.rb +82 -0
  142. data/lib/ucert/ad_tracker.rb +694 -0
  143. data/lib/ucert/adp_payroll_tracker.rb +189 -0
  144. data/lib/ucert/aix_tracker.rb +175 -0
  145. data/lib/ucert/alliance_swift_tracker.rb +300 -0
  146. data/lib/ucert/audiolog_tracker.rb +67 -0
  147. data/lib/ucert/bloomberg_tracker.rb +96 -0
  148. data/lib/ucert/check21_tracker.rb +95 -0
  149. data/lib/ucert/citidirect_be_tracker.rb +418 -0
  150. data/lib/ucert/citidirect_securities_tracker.rb +230 -0
  151. data/lib/ucert/citrix_sharefile_tracker.rb +196 -0
  152. data/lib/ucert/clear_par_tracker.rb +187 -0
  153. data/lib/ucert/cmbrun_ny_tracker.rb +244 -0
  154. data/lib/ucert/cvm_tracker.rb +230 -0
  155. data/lib/ucert/db_direct_tracker.rb +205 -0
  156. data/lib/ucert/equinix_tracker.rb +202 -0
  157. data/lib/ucert/fis_egifts_tracker.rb +249 -0
  158. data/lib/ucert/fis_prime_tracker.rb +391 -0
  159. data/lib/ucert/frb_tracker.rb +232 -0
  160. data/lib/ucert/go_contact_tracker.rb +778 -0
  161. data/lib/ucert/jpm_access_tracker.rb +205 -0
  162. data/lib/ucert/madison535_tracker.rb +273 -0
  163. data/lib/ucert/mantis_tracker.rb +249 -0
  164. data/lib/ucert/sage100_tracker.rb +355 -0
  165. data/lib/ucert/som_tracker.rb +223 -0
  166. data/lib/ucert/stb_tracker.rb +199 -0
  167. data/lib/ucert/swift_online_tracker.rb +197 -0
  168. data/lib/ucert/t24_tracker.rb +342 -0
  169. data/lib/ucert/utils/utils.rb +200 -0
  170. data/lib/ucert/vpn_tracker.rb +94 -0
  171. data/lib/ucert/wms_tracker.rb +240 -0
  172. data/lib/ucert/yst_tracker.rb +264 -0
  173. data/test/ad_testfiles/ldap_computer_test.txt +21 -0
  174. data/test/ad_testfiles/ldap_person_test.txt +21 -0
  175. data/test/aix_testfiles/application1.txt +7 -0
  176. data/test/aix_testfiles/application2.txt +15 -0
  177. data/test/alliance_swift_testfiles/Swift_Operator_Details_Test.xlsx +0 -0
  178. data/test/alliance_swift_testfiles/Swift_Operator_Profiles_Details_Test.xlsx +0 -0
  179. data/test/alliance_swift_testfiles/swift_operator_map_test.txt +55 -0
  180. data/test/alliance_swift_testfiles/swift_operator_map_test_2.txt +55 -0
  181. data/test/alliance_swift_testfiles/swift_operator_map_test_format_fixed.txt +55 -0
  182. data/test/citidirect_be_testfiles/UserProfileEntitlementsReport_Test.xlsx +0 -0
  183. data/test/citidirect_securities_testfiles/User_Entitlements_Report___CLNT_Test.xml +48 -0
  184. data/test/citrix_sharefile_testfiles/ShareFile_Access_Report_Test.xlsx +0 -0
  185. data/test/cmbrun_ny_testfiles/CMBNY_Position_Rpt_02242016_test.xlsx +0 -0
  186. data/test/cmbrun_ny_testfiles/CMBRUN_USER_RPT_Test.xlsx +0 -0
  187. data/test/db_direct_testfiles/accountpermission_Test.xlsx +0 -0
  188. data/test/equinix_testfiles/Secured Access List_CHINA MERCHANTS BANK_TEST.xlsx +0 -0
  189. data/test/fis_egifts_testfiles/CHINA_MERCHANTS_BANK_-_USER_ACCOUNT_FUNCTION_REPORT_TEST.xlsx +0 -0
  190. data/test/fis_prime_testfiles/Prime_Operator_Rights_Report_Test.xml +158 -0
  191. data/test/fis_prime_testfiles/Prime_Operator_Status_Report_Copy.xml +1659 -0
  192. data/test/fis_prime_testfiles/Prime_Operator_Status_Report_Test.xml +51 -0
  193. data/test/fis_prime_testfiles/Prime_Operators_and_Roles_Report_Copy.xml +1360 -0
  194. data/test/fis_prime_testfiles/Prime_Operators_and_Roles_Report_Test.xml +45 -0
  195. data/test/fis_prime_testfiles/Prime_Rights_by_Role_Report_Test.xml +65 -0
  196. data/test/fis_prime_testfiles/prime_user_map.txt +3 -0
  197. data/test/frb_testfiles/FRB_Subscriber_Roles_Report_Test.xlsx +0 -0
  198. data/test/go_contact_testfiles/go_contact_test.xlsx +0 -0
  199. data/test/jpm_access_testfiles/Capture.PNG +0 -0
  200. data/test/jpm_access_testfiles/jpm_user_entitlements_details_original.txt +208 -0
  201. data/test/jpm_access_testfiles/jpm_user_entitlements_details_test.txt +7 -0
  202. data/test/madison535_testfiles/535madison_bldg_pass_2_Test.xlsx +0 -0
  203. data/test/madison535_testfiles/535madison_bldg_pass_Test.xlsx +0 -0
  204. data/test/mantis_testfiles/Mantis_AccessLevels_Test.xlsx +0 -0
  205. data/test/mantis_testfiles/Mantis_ActiveUsers_Rpt_Test.xlsx +0 -0
  206. data/test/sage100_testfiles/SY_UserReport_RolePreferencesDetails_Test.xlsx +0 -0
  207. data/test/sage100_testfiles/SY_UserReport_RoleTaskPermissionsDetails_Test.xlsx +0 -0
  208. data/test/som_testfiles/som_user_map_test.txt +7 -0
  209. data/test/som_testfiles/som_user_report_test.csv +25 -0
  210. data/test/stb_testfiles/STB_USERS_test.csv +24 -0
  211. data/test/stb_testfiles/STB_USERS_test_constant.csv +24 -0
  212. data/test/swift_online_testfiles/UserReport.xls +0 -0
  213. data/test/swift_online_testfiles/UserReport_Test.xlsx +0 -0
  214. data/test/swift_online_testfiles/test_outline_level.rb +7 -0
  215. data/test/t24_testfiles/T24_Grp_Rpt_Test.csv +7 -0
  216. data/test/t24_testfiles/T24_User_Rpt_Test.csv +7 -0
  217. data/test/test_ad_tracker.rb +148 -0
  218. data/test/test_aix_tracker.rb +71 -0
  219. data/test/test_alliance_swift_tracker.rb +131 -0
  220. data/test/test_audiolog_tracker.rb +23 -0
  221. data/test/test_check21_tracker.rb +30 -0
  222. data/test/test_citidirect_be_tracker.rb +110 -0
  223. data/test/test_citidirect_securities_tracker.rb +89 -0
  224. data/test/test_citrix_sharefile_tracker.rb +105 -0
  225. data/test/test_cmbrun_ny_tracker.rb +112 -0
  226. data/test/test_db_direct_tracker.rb +125 -0
  227. data/test/test_equinix_tracker.rb +119 -0
  228. data/test/test_fis_egifts_tracker.rb +105 -0
  229. data/test/test_fis_prime_tracker.rb +288 -0
  230. data/test/test_frb_tracker.rb +104 -0
  231. data/test/test_go_contact.rb +276 -0
  232. data/test/test_jpm_access_tracker.rb +122 -0
  233. data/test/test_madison535_tracker.rb +125 -0
  234. data/test/test_mantis_tracker.rb +133 -0
  235. data/test/test_sage100_tracker.rb +120 -0
  236. data/test/test_som_tracker.rb +71 -0
  237. data/test/test_stb_tracker.rb +120 -0
  238. data/test/test_swift_online_tracker.rb +116 -0
  239. data/test/test_t24_tracker.rb +151 -0
  240. data/test/test_utils.rb +46 -0
  241. data/test/test_vpn_tracker.rb +56 -0
  242. data/test/test_wms_tracker.rb +109 -0
  243. data/test/test_yst_tracker.rb +133 -0
  244. data/test/utils_testfiles/file2list_test.txt +13 -0
  245. data/test/utils_testfiles/load_know_user_map_testfile.txt +4 -0
  246. data/test/wms_testfiles/role_rpt_test.txt +6 -0
  247. data/test/wms_testfiles/user_rpt_test.txt +6 -0
  248. data/test/yst_testfiles/YiShiTong_Org_Test.csv +18 -0
  249. data/test/yst_testfiles/YiShiTong_User_Test.csv +5 -0
  250. data/ucert.gemspec +52 -0
  251. data/version.txt +12 -0
  252. metadata +410 -0
@@ -0,0 +1,89 @@
1
+ require "minitest/autorun"
2
+ require "ucert"
3
+
4
+ class TestCitidirectSecuritiesTracker < Minitest::Test
5
+
6
+ def setup
7
+ @citi_se_tracker = Ucert::CitidirectSecuritiesTracker.new(:verbose=>false)
8
+ end
9
+
10
+ def test_instance_initialize_success
11
+ #refute_nil @citi_se_tracker.cds_user_status_report
12
+ refute_nil @citi_se_tracker.file_cds_user_map
13
+ refute_nil @citi_se_tracker.cds_2_ad_user
14
+ refute_nil @citi_se_tracker.cds_user_entitlement
15
+ end
16
+
17
+ def test_parse_cds_user_entitlement_report
18
+ @test_cds_user_entitlement=@citi_se_tracker.send(:parse_cds_user_entitlement_report, File.dirname(__FILE__)+"/citidirect_securities_testfiles/User_Entitlements_Report___CLNT_Test.xml")
19
+ assert_equal 5, @test_cds_user_entitlement.size
20
+ @test_cds_user_entitlement.each do |index, user|
21
+ assert_equal "Test#{index}-1", user['UserName']
22
+ assert_equal "Test#{index}-2", user['Created']
23
+ assert_equal "Test#{index}-3", user['LastLogin']
24
+ assert_equal "Test#{index}-4", user['DataGroup']
25
+ assert_equal "Test#{index}-5", user['FunctionalGroup']
26
+ assert_equal "Test#{index}-6", user['PwdExpired']
27
+ assert_equal "Test#{index}-7", user['AcctDisabled']
28
+ end
29
+ end
30
+
31
+ def test_dn_2_index
32
+ line_cnt=1
33
+ File.open(@citi_se_tracker.file_cds_user_map, 'r').each_line do |line|
34
+ if line_cnt>1
35
+ dn=line.split("|")[1].strip
36
+ assert_equal line_cnt-1, @citi_se_tracker.send(:dn_2_index, dn)
37
+ end
38
+ line_cnt+=1
39
+ end
40
+ end
41
+
42
+ def test_insert_dn
43
+ @citi_se_tracker.cds_user_entitlement.each do |index, user|
44
+ dn_regex=/\ACN=.+\,OU=.+\,DC=ny,DC=cmbchina,DC=com\z/
45
+ assert_match dn_regex, user["DN"] unless user["DN"].nil?
46
+ end
47
+ end
48
+
49
+ def test_print_user_entitlement
50
+ $stdout = StringIO.new
51
+ @citi_se_tracker.print
52
+ items=$stdout.string.split("\n")
53
+ items.each do |line|
54
+ assert_equal 7, line.count("|")
55
+ end
56
+ end
57
+
58
+ def test_save_cds_user_map!
59
+ @citi_se_tracker.send(:save!, File.dirname(__FILE__)+"/citidirect_securities_testfiles/citidirect_securities_user_map_test.txt")
60
+ line_count=0
61
+ File.open(File.dirname(__FILE__)+"/citidirect_securities_testfiles/citidirect_securities_user_map_test.txt", 'r').each_line do |line|
62
+ if line_count==0
63
+ assert_match (/\# local CitiDirect for Securitites to AD user map file created by the .+ class .+ method at: .+/), line
64
+ else
65
+ user_name=line.split("|")[0]
66
+ dn=line.split("|")[1].strip
67
+ assert_equal @citi_se_tracker.cds_user_entitlement[line_count]["UserName"].upcase,user_name
68
+ if dn.empty?
69
+ assert_nil @citi_se_tracker.cds_user_entitlement[line_count]["DN"]
70
+ else
71
+ assert_equal @citi_se_tracker.cds_user_entitlement[line_count]["DN"], dn
72
+ end
73
+ end
74
+ line_count+=1
75
+ end
76
+ File.delete(File.dirname(__FILE__)+"/citidirect_securities_testfiles/citidirect_securities_user_map_test.txt")
77
+ end
78
+
79
+ def test_cds_search_by_dn
80
+ index=0
81
+ File.open(@citi_se_tracker.file_cds_user_map, 'r').each_line do |line|
82
+ if index>0
83
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
84
+ assert_equal dn, @citi_se_tracker.send(:search_by_dn, dn)["DN"] unless dn.empty?
85
+ end
86
+ index=index+1
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,105 @@
1
+ require "minitest/autorun"
2
+ require "ucert"
3
+
4
+ class TestCitrixSharefileTracker < Minitest::Test
5
+
6
+ def setup
7
+ @citrix_tracker = Ucert::CitrixSharefileTracker.new(:verbose=>false)
8
+ end
9
+
10
+ def test_instance_initialize_success
11
+ refute_nil @citrix_tracker.file_sharefile_user_map
12
+ refute_nil @citrix_tracker.sharefile_2_ad_user
13
+ refute_nil @citrix_tracker.sharefile_user_entitlement
14
+ end
15
+
16
+ def test_parse_sharefile_user_entitlement_report
17
+ @test_entitlement=@citrix_tracker.send(:parse_sharefile_user_entitlement_report, File.dirname(__FILE__)+"/citrix_sharefile_testfiles/ShareFile_Access_Report_Test.xlsx")
18
+ assert_equal 3, @test_entitlement.size
19
+ #puts @test_entitlement
20
+ index=1
21
+ @test_entitlement.each do |email, content|
22
+ assert_equal ("test#{index}-Email").upcase, email
23
+ content.each do |key, value|
24
+ if key=="entitlements"
25
+ 1.upto(index) do |num|
26
+ value[num-1].each do |k,v|
27
+ assert_equal "test#{index}-#{k}", v
28
+ end
29
+ end
30
+ else
31
+ assert_equal "test#{index}-#{key}", value
32
+ end
33
+ end
34
+ index+=1
35
+ end
36
+ end
37
+
38
+ #Test will fail because the entitlement use email as index but not number in the tracker code
39
+ def test_dn_2_index
40
+ =begin
41
+ line_cnt=1
42
+ File.open(@citrix_tracker.file_sharefile_user_map, 'r').each_line do |line|
43
+ if line_cnt>1
44
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
45
+ assert_equal line_cnt-1, @citrix_tracker.send(:dn_2_index, dn) unless dn.empty?
46
+ end
47
+ line_cnt+=1
48
+ end
49
+ =end
50
+ end
51
+
52
+ def test_insert_dn
53
+ @citrix_tracker.sharefile_user_entitlement.each do |index, user|
54
+ dn_regex=/\ACN=.+\,OU=.+\,DC=ny,DC=cmbchina,DC=com\z/
55
+ assert_match dn_regex, user["DN"] unless user["DN"].nil?
56
+ end
57
+ end
58
+
59
+ def test_print_user_entitlement
60
+ column_num=Array.new
61
+ @citrix_tracker.sharefile_user_entitlement.values.map do |rec|
62
+ column_num.push(rec.each.size)
63
+ end
64
+ assert_equal 1, column_num.uniq!.size
65
+ $stdout = StringIO.new
66
+ @citrix_tracker.print_user.each
67
+ items=$stdout.string.split("\n")
68
+ items.each do |line|
69
+ assert_equal column_num[0], line.count("|")
70
+ end
71
+ end
72
+
73
+ def test_save_sharefile_user_map!
74
+ @citrix_tracker.send(:save!, File.dirname(__FILE__)+"/citrix_sharefile_testfiles/sharefile_user_map_test.txt")
75
+ line_count=0
76
+ File.open(File.dirname(__FILE__)+"/citrix_sharefile_testfiles/sharefile_user_map_test.txt", 'r').each_line do |line|
77
+ if line_count==0
78
+ assert_match (/\# ShareFile to AD user map file created by the .+ class .+ method at: .+/), line
79
+ else
80
+ email=line.split("|")[0]
81
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
82
+ assert_equal @citrix_tracker.sharefile_user_entitlement[email]["Email"].upcase, email
83
+ if dn.empty?
84
+ assert_nil @citrix_tracker.sharefile_user_entitlement[email]["DN"]
85
+ else
86
+ assert_equal @citrix_tracker.sharefile_user_entitlement[email]["DN"], dn
87
+ end
88
+ end
89
+ line_count+=1
90
+ end
91
+ File.delete(File.dirname(__FILE__)+"/citrix_sharefile_testfiles/sharefile_user_map_test.txt")
92
+ end
93
+
94
+ def test_search_by_dn
95
+ index=0
96
+ File.open(@citrix_tracker.file_sharefile_user_map, 'r').each_line do |line|
97
+ if index>0
98
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
99
+ assert_equal dn, @citrix_tracker.send(:search_by_dn, dn)['DN'] unless dn.empty?
100
+ end
101
+ index=index+1
102
+ end
103
+ end
104
+
105
+ end
@@ -0,0 +1,112 @@
1
+ require "minitest/autorun"
2
+ require "ucert"
3
+
4
+ class TestCmbrunNYTracker < Minitest::Test
5
+
6
+ def setup
7
+ @cmbrun_tracker = Ucert::CmbrunNYTracker.new(:verbose=>false)
8
+ end
9
+
10
+ def test_instance_initialize_success
11
+ refute_nil @cmbrun_tracker.file_crny_user_map
12
+ refute_nil @cmbrun_tracker.crny_2_ad_user
13
+ refute_nil @cmbrun_tracker.crny_user_entitlement
14
+ end
15
+
16
+ def test_parse_crny_user_report
17
+ @test_entitlement=@cmbrun_tracker.send(:parse_crny_user_report,File.dirname(__FILE__)+"/cmbrun_ny_testfiles/CMBRUN_USER_RPT_Test.xlsx")
18
+ user=Array.new
19
+ user[1]={"User ID"=>"100001", "User Name"=>"小明", "Branch No."=>"198014 : IT Department", "User Status"=>"A : Active",
20
+ "Operator No."=>"100001","Log on Mode"=>"P : Password", "Employee No."=>"01000001", "Internal Customer ID"=>"9999999991"}
21
+ user[2]={"User ID"=>"100002", "User Name"=>"Hillary Clinton", "Branch No."=>"198081 : Risk Management Department", "User Status"=>"C : Close/Closed",
22
+ "Operator No."=>"100002", "Log on Mode"=>"P : Password", "Employee No."=>nil, "Internal Customer ID"=>"9999999992"}
23
+ user[3]={"User ID"=>"100003", "User Name"=>"Donald Trump", "Branch No."=>"198520 : Operation Department", "User Status"=>"U : Never Logged on",
24
+ "Operator No."=>"100003", "Log on Mode"=>"B : Branch", "Employee No."=>nil, "Internal Customer ID"=>"9999999993"}
25
+ for i in 1..3 do
26
+ assert_equal user[i], @test_entitlement[i]
27
+ end
28
+ end
29
+
30
+ def test_parse_crny_position_report
31
+ @test_entitlement=@cmbrun_tracker.send(:parse_crny_position_report,File.dirname(__FILE__)+"/cmbrun_ny_testfiles/CMBNY_Position_Rpt_02242016_test.xlsx")
32
+ header=["Position Number", "Position", "Position Rank", "EOD Required", "Password Validation Period", "Max Attempts", "Position Description"]
33
+ for i in 1..3 do
34
+ position=Array.new
35
+ 1.upto(header.size) do |col_num|
36
+ position.push("测试Test#{i}:#{col_num}")
37
+ end
38
+ record=header.zip(position).to_h
39
+ assert_equal record, @test_entitlement["测试Test#{i}:1"]
40
+ end
41
+ end
42
+
43
+ #mutiple user_ids have same dn which causes the test fail
44
+ def test_dn_2_index
45
+ =begin
46
+ line_cnt=1
47
+ File.open(@cmbrun_tracker.file_crny_user_map, 'r').each_line do |line|
48
+ if line_cnt>1
49
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
50
+ assert_equal line_cnt-1, @cmbrun_tracker.send(:dn_2_index, dn) unless dn.empty?
51
+ end
52
+ line_cnt+=1
53
+ end
54
+ =end
55
+ end
56
+
57
+ def test_insert_dn
58
+ @cmbrun_tracker.crny_user_entitlement.each do |index, user|
59
+ dn_regex=/\ACN=.+\,OU=.+\,DC=ny,DC=cmbchina,DC=com\z/
60
+ assert_match dn_regex, user["DN"] unless user["DN"].nil?
61
+ end
62
+ end
63
+
64
+ def test_print_user_entitlement
65
+ column_num=Array.new
66
+ @cmbrun_tracker.crny_user_entitlement.values.map do |rec|
67
+ column_num.push(rec.each.size)
68
+ end
69
+ assert_equal 1, column_num.uniq!.size
70
+ $stdout = StringIO.new
71
+ @cmbrun_tracker.print_user.each
72
+ items=$stdout.string.split("\n")
73
+ items.each do |line|
74
+ assert_equal column_num[0], line.count("|")
75
+ end
76
+ end
77
+
78
+ def test_save_crny_user_map!
79
+ @cmbrun_tracker.send(:save!, File.dirname(__FILE__)+"/cmbrun_ny_testfiles/crny_access_user_map_test.txt")
80
+ line_count=0
81
+ File.open(File.dirname(__FILE__)+"/cmbrun_ny_testfiles/crny_access_user_map_test.txt", 'r').each_line do |line|
82
+ if line_count==0
83
+ assert_match (/\# local CMBRun NY to AD user map file created by the .+ class .+ method at: .+/), line
84
+ else
85
+ user_id=line.split(":")[0]
86
+ user_name=line.split(":")[1].split("|")[0]
87
+ dn=line.split(":")[1].split("|")[1].nil? ? dn="" : dn=line.split(":")[1].split("|")[1].strip
88
+ assert_equal @cmbrun_tracker.crny_user_entitlement[line_count]["User Name"].upcase, user_name
89
+ assert_equal @cmbrun_tracker.crny_user_entitlement[line_count]["User ID"].upcase, user_id
90
+ if dn.empty?
91
+ assert_nil @cmbrun_tracker.crny_user_entitlement[line_count]["DN"]
92
+ else
93
+ assert_equal @cmbrun_tracker.crny_user_entitlement[line_count]["DN"], dn
94
+ end
95
+ end
96
+ line_count+=1
97
+ end
98
+ File.delete(File.dirname(__FILE__)+"/cmbrun_ny_testfiles/crny_access_user_map_test.txt")
99
+ end
100
+
101
+ def test_db_search_by_dn
102
+ index=0
103
+ File.open(@cmbrun_tracker.file_crny_user_map, 'r').each_line do |line|
104
+ if index>0
105
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
106
+ assert_equal dn, @cmbrun_tracker.send(:search_by_dn, dn)['DN'] unless dn.empty?
107
+ end
108
+ index=index+1
109
+ end
110
+ end
111
+
112
+ end
@@ -0,0 +1,125 @@
1
+ require "minitest/autorun"
2
+ require "ucert"
3
+
4
+ class TestDbDirectTracker < Minitest::Test
5
+
6
+ def setup
7
+ @db_tracker = Ucert::DbDirectTracker.new(:verbose=>false)
8
+ end
9
+
10
+ def test_instance_initialize_success
11
+ refute_nil @db_tracker.file_db_user_map
12
+ refute_nil @db_tracker.db_2_ad_user
13
+ refute_nil @db_tracker.db_user_entitlement
14
+ puts @db_tracker.db_user_entitlement[2]["Entitlements"]
15
+ end
16
+
17
+ # infromation in the first row is not recorded except first user, which causes failure.
18
+ def test_parse_db_user_entitlement_report_method
19
+ #prepare test_file, only uncomment it when test_file is empty
20
+ =begin
21
+ doc = File.open(File.dirname(__FILE__)+"/db_direct_testfiles/accountpermission_Test.csv",'w')
22
+ title="User Id,WebSSO Id,First Name,Last Name,Product,Company,Bank Branch,Account,Account Currency,User Role Type,User Role,\"Entitlement Permission (View, Edit, Verify(optional), Use)\",\"Authorization Permission(Yes, No)\",\"Signatory Permission(Yes, No)\",Authorization Permission-LimitCurrency,Authorization Permission-Single Normal Limit,Authorization Permission-Single Pre-Approved Limit,Authorization Permission-Joint Category"
23
+ doc.write(title)
24
+ doc.write("\n")
25
+ for kk in 1..3 do
26
+ for ii in 1..kk do
27
+ for jj in 1..7 do
28
+ doc.write("Test"+kk.to_s+":"+jj.to_s+",")
29
+ end
30
+ for jj in 8..18 do
31
+ doc.write("Test"+kk.to_s+":"+ii.to_s+":"+jj.to_s+",")
32
+ end
33
+ doc.write("\n")
34
+ end
35
+ end
36
+ doc.close
37
+ =end
38
+
39
+ @test_entitlement=@db_tracker.send(:parse_db_user_entitlement_report, File.dirname(__FILE__)+"/db_direct_testfiles/accountpermission_Test.xlsx")
40
+ assert_equal 3, @test_entitlement.size
41
+ #count=1
42
+ for kk in 1..3 do
43
+ for ii in 1..kk do
44
+ for jj in 1..7 do
45
+ #puts count
46
+ assert_equal "Test"+kk.to_s+":"+jj.to_s, @test_entitlement[kk].values[jj-1]
47
+ #count+=1
48
+ end
49
+ for jj in 8..18 do
50
+ #puts count
51
+ assert_equal "Test"+kk.to_s+":"+ii.to_s+":"+jj.to_s, (@test_entitlement[kk].values[7][ii-1].values)[jj-8]
52
+ #count+=1
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ def test_dn_2_index
59
+ line_cnt=1
60
+ File.open(@db_tracker.file_db_user_map, 'r').each_line do |line|
61
+ if line_cnt>1
62
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
63
+ assert_equal line_cnt-1, @db_tracker.send(:dn_2_index, dn)
64
+ end
65
+ line_cnt+=1
66
+ end
67
+ end
68
+
69
+ def test_insert_dn
70
+ @db_tracker.db_user_entitlement.each do |index, user|
71
+ dn_regex=/\ACN=.+\,OU=.+\,DC=ny,DC=cmbchina,DC=com\z/
72
+ assert_match dn_regex, user["DN"] unless user["DN"].nil?
73
+ end
74
+ end
75
+
76
+ #field 'Account', 'Account Currency' are in Entitlement which cause the test fail
77
+ def test_print_user_entitlement
78
+ column_num=Array.new
79
+ @db_tracker.db_user_entitlement.values.map do |rec|
80
+ #puts rec
81
+ #puts "-----------------------------------------------------------"
82
+ column_num.push(rec.each.size)
83
+ end
84
+ assert_equal 1, column_num.uniq!.size
85
+ $stdout = StringIO.new
86
+ @db_tracker.print_user.each
87
+ items=$stdout.string.split("\n")
88
+ items.each do |line|
89
+ assert_equal column_num[0]-1, line.count("|")
90
+ end
91
+ end
92
+
93
+ def test_save_db_user_map!
94
+ @db_tracker.send(:save!, File.dirname(__FILE__)+"/db_direct_testfiles/db_direct_user_map_test.txt")
95
+ line_count=0
96
+ File.open(File.dirname(__FILE__)+"/db_direct_testfiles/db_direct_user_map_test.txt", 'r').each_line do |line|
97
+ if line_count==0
98
+ assert_match (/\# local db for Securitites to AD user map file created by the .+ class .+ method at: .+/), line
99
+ else
100
+ user_id=line.split("|")[0]
101
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
102
+ assert_equal @db_tracker.db_user_entitlement[line_count]["User Id"].upcase, user_id
103
+ if dn.empty?
104
+ assert_nil @db_tracker.db_user_entitlement[line_count]["DN"]
105
+ else
106
+ assert_equal @db_tracker.db_user_entitlement[line_count]["DN"], dn
107
+ end
108
+ end
109
+ line_count+=1
110
+ end
111
+ File.delete(File.dirname(__FILE__)+"/db_direct_testfiles/db_direct_user_map_test.txt")
112
+ end
113
+
114
+ def test_db_search_by_dn
115
+ index=0
116
+ File.open(@db_tracker.file_db_user_map, 'r').each_line do |line|
117
+ if index>0
118
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
119
+ assert_equal dn, @db_tracker.send(:search_by_dn, dn)['DN'] unless dn.empty?
120
+ end
121
+ index=index+1
122
+ end
123
+ end
124
+
125
+ end
@@ -0,0 +1,119 @@
1
+ require "minitest/autorun"
2
+ require "ucert"
3
+ require 'fileutils'
4
+
5
+ #overriding initialize method for loading test_files
6
+ class Tracker_3quinix < Ucert::EquinixTracker
7
+ def initialize (params ={})
8
+ @verbose=params.fetch(:verbose, false)
9
+ @equinix_user_entitlement_report=File.dirname(__FILE__)+"/equinix_testfiles/Secured Access List_CHINA MERCHANTS BANK_TEST.xlsx"
10
+ @file_equinix_user_map=File.dirname(__FILE__)+"/equinix_testfiles/equinix_user_map_test2.txt"
11
+ @equinix_user_entitlement=Hash.new
12
+ parse_equinix_user_entitlement_report(@equinix_user_entitlement_report)
13
+ end
14
+ end
15
+
16
+ class TestEquinixTracker < Minitest::Test
17
+
18
+ def setup
19
+ @equinix_tracker = Ucert::EquinixTracker.new(:verbose=>false)
20
+ @tracker_3quinix = Tracker_3quinix.new(:verbose=>false) #for test use
21
+ #The test_file would be updated with Active Directory
22
+ end
23
+
24
+ def test_instance_initialize_success
25
+ refute_nil @equinix_tracker.file_equinix_user_map
26
+ refute_nil @equinix_tracker.equinix_2_ad_user
27
+ refute_nil @equinix_tracker.equinix_user_entitlement
28
+ end
29
+
30
+ def test_parse_equinix_user_entitlement_report
31
+ @tracker_3quinix.equinix_user_entitlement.each do |index, user|
32
+ assert_equal 3, user["entitlements"].size
33
+ end
34
+ end
35
+
36
+ def test_parse_equinix_worksheet
37
+ @tracker_3quinix.equinix_user_entitlement.each do |index, user|
38
+ assert_equal "test#{index}-"+"Username:", user["Username:"]
39
+ assert_equal "test#{index}-"+"First Name:", user["First Name:"]
40
+ assert_equal "test#{index}-"+"Last Name:", user["Last Name:"]
41
+ assert_equal "test#{index}-"+"Name (Local)", user["Name (Local)"]
42
+ for sheet_count in 1..3 do
43
+ for i in 1..sheet_count do
44
+ assert_equal "test#{index}-"+"sheet"+sheet_count.to_s+"-"+i.to_s, user["entitlements"][sheet_count-1]["sheet"+sheet_count.to_s+"-"+i.to_s]
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ def test_insert_dn
51
+ @equinix_tracker.equinix_user_entitlement.each do |index, user|
52
+ dn_regex=/\ACN=.+\,DC=ny,DC=cmbchina,DC=com\z/
53
+ assert_match dn_regex, user["DN"] unless user["DN"].nil?
54
+ end
55
+ end
56
+
57
+ # In ecured Access List_CHINA MERCHANTS BANK .xlsx Douglas has two rows in portal access sheet, which caused the fail
58
+ def test_dn_2_index
59
+ =begin
60
+ index=1
61
+ File.open(@equinix_tracker.file_equinix_user_map, 'r').each_line do |line|
62
+ if index>1
63
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
64
+ assert_equal index-1, @equinix_tracker.send(:dn_2_index, dn) unless dn.empty?
65
+ end
66
+ index+=1
67
+ end
68
+ =end
69
+ end
70
+
71
+ def test_print_user_entitlement
72
+ column_num=Array.new
73
+ @equinix_tracker.equinix_user_entitlement.values.map do |rec|
74
+ column_num.push(rec.each.size)
75
+ end
76
+ assert_equal 1, column_num.uniq!.size
77
+ $stdout = StringIO.new
78
+ @equinix_tracker.print_user.each
79
+ items=$stdout.string.split("\n")
80
+ items.each do |line|
81
+ assert_equal column_num[0], line.count("|")
82
+ end
83
+ end
84
+
85
+ def test_save_prime_operator_map
86
+ @equinix_tracker.send(:save!, File.dirname(__FILE__)+"/equinix_testfiles/equinix_user_map_test.txt")
87
+ line_count=0
88
+ File.open(File.dirname(__FILE__)+"/equinix_testfiles/equinix_user_map_test.txt", 'r').each_line do |line|
89
+ if line_count==0
90
+ assert_match (/\# Equinix to AD user map file created by the .+ class .+ method at: .+/), line
91
+ else
92
+ user_name=line.split(":")[0]
93
+ first_name=line.split(":")[1].split("|")[0]
94
+ dn=line.split(":")[1].split("|")[1].strip
95
+ assert_equal @equinix_tracker.equinix_user_entitlement[line_count]["Username:"].upcase,user_name
96
+ assert_equal @equinix_tracker.equinix_user_entitlement[line_count]["First Name:"].upcase, first_name
97
+ if dn.empty?
98
+ assert_nil @equinix_tracker.equinix_user_entitlement[line_count]["DN"]
99
+ else
100
+ assert_equal @equinix_tracker.equinix_user_entitlement[line_count]["DN"], dn
101
+ end
102
+ end
103
+ line_count+=1
104
+ end
105
+ File.delete(File.dirname(__FILE__)+"/equinix_testfiles/equinix_user_map_test.txt")
106
+ end
107
+
108
+ def test_be_search_by_dn
109
+ index=0
110
+ File.open(@equinix_tracker.file_equinix_user_map, 'r').each_line do |line|
111
+ if index>0
112
+ dn=line.split("|")[1].nil? ? dn="" : dn=line.split("|")[1].strip
113
+ assert_equal dn, @equinix_tracker.send(:search_by_dn, dn)["DN"] unless dn.empty?
114
+ end
115
+ index=index+1
116
+ end
117
+ end
118
+
119
+ end