parse_decision 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +6 -0
  5. data/LICENSE +22 -0
  6. data/README.md +71 -0
  7. data/bin/parse_decision +126 -0
  8. data/lib/parse_decision/config.rb +90 -0
  9. data/lib/parse_decision/controller.rb +142 -0
  10. data/lib/parse_decision/parsedecisiontask.rb +31 -0
  11. data/lib/parse_decision/parser.rb +194 -0
  12. data/lib/parse_decision/pd_context.rb +148 -0
  13. data/lib/parse_decision/plugin/application.rb +48 -0
  14. data/lib/parse_decision/plugin/plugin.rb +56 -0
  15. data/lib/parse_decision/plugin/ppm_xpath.rb +70 -0
  16. data/lib/parse_decision/plugin/pre_decision_guideline.rb +177 -0
  17. data/lib/parse_decision/plugin/product.rb +176 -0
  18. data/lib/parse_decision/plugin/product_xpath.rb +52 -0
  19. data/lib/parse_decision/plugin/web_product.rb +179 -0
  20. data/lib/parse_decision/plugin.rb +50 -0
  21. data/lib/parse_decision/version.rb +5 -0
  22. data/lib/parse_decision.rb +59 -0
  23. data/parse_decision.gemspec +27 -0
  24. data/rakefile.rb +58 -0
  25. data/spec/context_spec.rb +21 -0
  26. data/spec/data/multiproduct.decision.txt +1481 -0
  27. data/spec/data/prod.decision.txt +3957 -0
  28. data/spec/data/reference/multiproduct/001-APP.xml +1 -0
  29. data/spec/data/reference/multiproduct/001-Mod-Forbear-PRODUCT.xml +357 -0
  30. data/spec/data/reference/multiproduct/001-Mod-Forgive-PRODUCT.xml +361 -0
  31. data/spec/data/reference/multiproduct/001-Mod-RateTerm-PRODUCT.xml +353 -0
  32. data/spec/data/reference/multiproduct/001-Mod-SAM-PRODUCT.xml +365 -0
  33. data/spec/data/reference/product/001-APP.xml +1 -0
  34. data/spec/data/reference/product/001-Validation-Rules.xml +536 -0
  35. data/spec/data/reference/product/002-APP.xml +1 -0
  36. data/spec/data/reference/product/002-FAPIILoanModification-PRODUCT.xml +1770 -0
  37. data/spec/data/reference/web/001-APP.xml +1 -0
  38. data/spec/data/reference/web/001-Product01-PRODUCT.xml +1088 -0
  39. data/spec/data/reference/web/002-APP.xml +1 -0
  40. data/spec/data/reference/web/002-Product01-PRODUCT.xml +15 -0
  41. data/spec/data/reference/workflow/001-APP.xml +1 -0
  42. data/spec/data/reference/workflow/001-WF-DataClearing-Pre-Rules.xml +37 -0
  43. data/spec/data/reference/workflow-2/001-APP.xml +1 -0
  44. data/spec/data/reference/workflow-2/001-WF-ProdSel-Post-Rules.xml +699 -0
  45. data/spec/data/test.rb +13 -0
  46. data/spec/data/validation.decision.txt +1199 -0
  47. data/spec/data/web.decision.txt +1128 -0
  48. data/spec/data/wf.decision.txt +43 -0
  49. data/spec/data/wf2.decision.txt +705 -0
  50. data/spec/parser_spec.rb +308 -0
  51. data/spec/plugin_app_spec.rb +40 -0
  52. data/spec/plugin_ppmxpath_spec.rb +74 -0
  53. data/spec/plugin_predecision_spec.rb +81 -0
  54. data/spec/plugin_product_spec.rb +117 -0
  55. data/spec/plugin_productxpath_spec.rb +76 -0
  56. data/spec/plugin_spec.rb +54 -0
  57. data/spec/spec_helper.rb +81 -0
  58. data/test/data/2.2.decision-multiple.txt +1391 -0
  59. data/test/data/2.2.decision.txt +1128 -0
  60. data/test/data/2.decision.txt +1481 -0
  61. data/test/plugins/test_plugin_predecisionguideline.rb +120 -0
  62. data/test/plugins/test_plugin_product.rb +120 -0
  63. data/test/test_config.rb +90 -0
  64. data/test/test_context.rb +103 -0
  65. data/test/test_parse_webdecision.rb +121 -0
  66. data/test/test_parser.rb +69 -0
  67. data/test/test_parser_parse.rb +110 -0
  68. metadata +225 -0
@@ -0,0 +1,120 @@
1
+ ##############################################################################
2
+ # File:: test_plugin_predecisionguideline.rb
3
+ # Purpose:: Test Plugin::PreDecisionGuideline class functionality
4
+ #
5
+ # Author:: Jeff McAffee 04/18/2010
6
+ # Copyright:: Copyright (c) 2010, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'test/unit' #(1)
11
+ require 'flexmock/test_unit'
12
+ #require 'testhelper/filecomparer'
13
+ require 'logger'
14
+
15
+ require 'fileutils'
16
+
17
+ require 'parse_decision'
18
+
19
+ class TestPluginPreDecisionGuideline < Test::Unit::TestCase #(3)
20
+ include FileUtils
21
+ include FlexMock::TestCase
22
+ include ParseDecision
23
+
24
+ #-------------------------------------------------------------------------------------------------------------#
25
+ # setup - Set up test fixture
26
+ #
27
+ #------------------------------------------------------------------------------------------------------------#
28
+ def setup
29
+ $LOG = Logger.new(STDERR)
30
+ $LOG.level = Logger::DEBUG
31
+ @baseDir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
32
+ @dataDir = File.join(@baseDir, "data")
33
+ @outputDir = File.join(@dataDir, "output")
34
+
35
+ @context = PDContext.new
36
+ assert(nil != @context)
37
+
38
+
39
+ end
40
+
41
+ #-------------------------------------------------------------------------------------------------------------#
42
+ # teardown - Clean up test fixture
43
+ #
44
+ #------------------------------------------------------------------------------------------------------------#
45
+ def teardown
46
+ @context = nil
47
+ end
48
+
49
+ #-------------------------------------------------------------------------------------------------------------#
50
+ # cleanOutput - Clean up output directory
51
+ #
52
+ #------------------------------------------------------------------------------------------------------------#
53
+ def cleanOutput
54
+ if(!File.exists?(@outputDir))
55
+ FileUtils.mkdir(@outputDir)
56
+ return
57
+ end
58
+
59
+ if(File.directory?(@outputDir))
60
+ FileUtils.rm_r(@outputDir)
61
+ FileUtils.mkdir(@outputDir)
62
+ end
63
+
64
+
65
+ end
66
+
67
+ #-------------------------------------------------------------------------------------------------------------#
68
+ # test_plugin_predecisionguideline_attrib_replacement - Test the Plugin::Product class
69
+ #
70
+ #------------------------------------------------------------------------------------------------------------#
71
+ def test_plugin_predecisionguideline_attrib_replacement
72
+ plugin = Plugin::PreDecisionGuideline.new
73
+ assert(nil != plugin)
74
+
75
+ target = "<PARAMS><_DATA_SET _Name='Test1' _Value='1'/><_DATA_SET _Name='Test2' _Value='2'/><_DATA_SET _Name='Test3' _Value='3'/></PARAMS>"
76
+ expected = "<PARAMS><DATA_SET Name='Test1' Value='1'/><DATA_SET Name='Test2' Value='2'/><DATA_SET Name='Test3' Value='3'/></PARAMS>"
77
+
78
+ @context.state = :app
79
+ result = plugin.execute( @context, target )
80
+ assert(result, "Product.execute() returned false.")
81
+
82
+ output = plugin.ppmData
83
+ assert(output == expected, "Output did not match expected.")
84
+
85
+ end
86
+
87
+ #-------------------------------------------------------------------------------------------------------------#
88
+ # INOPtest_parsedecision_parse - Test the parseFile function
89
+ #
90
+ #------------------------------------------------------------------------------------------------------------#
91
+ def INOPtest_parsedecision_parse
92
+ target = Parser.new
93
+ assert(nil != target)
94
+
95
+ fname = "2.decision.txt"
96
+ srcFile = File.join(@dataDir, fname)
97
+ assert(File.exists?(srcFile))
98
+
99
+ cleanOutput()
100
+
101
+ target.setOutdir(@outputDir)
102
+ target.parseFile(srcFile)
103
+
104
+ assert(File.exists?(File.join(@outputDir, "01-APP.xml")))
105
+ assert(File.exists?(File.join(@outputDir, "01-Mod-Forbear-PRODUCT.xml")))
106
+ assert(File.exists?(File.join(@outputDir, "01-Mod-Forgive-PRODUCT.xml")))
107
+ assert(File.exists?(File.join(@outputDir, "01-Mod-RateTerm-PRODUCT.xml")))
108
+ assert(File.exists?(File.join(@outputDir, "01-Mod-SAM-PRODUCT.xml")))
109
+ end
110
+
111
+ #-------------------------------------------------------------------------------------------------------------#
112
+ # test_parsedecision_does_something
113
+ #
114
+ #------------------------------------------------------------------------------------------------------------#
115
+ def test_plugin_product_does_something
116
+
117
+ end
118
+
119
+
120
+ end # TestPluginProduct
@@ -0,0 +1,120 @@
1
+ ##############################################################################
2
+ # File:: test_plugin_product.rb
3
+ # Purpose:: Test Plugin::Product class functionality
4
+ #
5
+ # Author:: Jeff McAffee 04/18/2010
6
+ # Copyright:: Copyright (c) 2010, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'test/unit' #(1)
11
+ require 'flexmock/test_unit'
12
+ #require 'testhelper/filecomparer'
13
+ require 'logger'
14
+
15
+ require 'fileutils'
16
+
17
+ require 'parse_decision'
18
+
19
+ class TestPluginProduct < Test::Unit::TestCase #(3)
20
+ include FileUtils
21
+ include FlexMock::TestCase
22
+ include ParseDecision
23
+
24
+ #-------------------------------------------------------------------------------------------------------------#
25
+ # setup - Set up test fixture
26
+ #
27
+ #------------------------------------------------------------------------------------------------------------#
28
+ def setup
29
+ $LOG = Logger.new(STDERR)
30
+ $LOG.level = Logger::DEBUG
31
+ @baseDir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
32
+ @dataDir = File.join(@baseDir, "data")
33
+ @outputDir = File.join(@dataDir, "output")
34
+
35
+ @context = PDContext.new
36
+ assert(nil != @context)
37
+
38
+
39
+ end
40
+
41
+ #-------------------------------------------------------------------------------------------------------------#
42
+ # teardown - Clean up test fixture
43
+ #
44
+ #------------------------------------------------------------------------------------------------------------#
45
+ def teardown
46
+ @context = nil
47
+ end
48
+
49
+ #-------------------------------------------------------------------------------------------------------------#
50
+ # cleanOutput - Clean up output directory
51
+ #
52
+ #------------------------------------------------------------------------------------------------------------#
53
+ def cleanOutput
54
+ if(!File.exists?(@outputDir))
55
+ FileUtils.mkdir(@outputDir)
56
+ return
57
+ end
58
+
59
+ if(File.directory?(@outputDir))
60
+ FileUtils.rm_r(@outputDir)
61
+ FileUtils.mkdir(@outputDir)
62
+ end
63
+
64
+
65
+ end
66
+
67
+ #-------------------------------------------------------------------------------------------------------------#
68
+ # test_plugin_product_attrib_replacement - Test the Plugin::Product class
69
+ #
70
+ #------------------------------------------------------------------------------------------------------------#
71
+ def test_plugin_product_attrib_replacement
72
+ plugin = Plugin::Product.new
73
+ assert(nil != plugin)
74
+
75
+ target = "<PARAMS><_DATA_SET _Name='Test1' _Value='1'/><_DATA_SET _Name='Test2' _Value='2'/><_DATA_SET _Name='Test3' _Value='3'/></PARAMS>"
76
+ expected = "<PARAMS><DATA_SET Name='Test1' Value='1'/><DATA_SET Name='Test2' Value='2'/><DATA_SET Name='Test3' Value='3'/></PARAMS>"
77
+
78
+ @context.state = :productXml
79
+ result = plugin.execute( @context, target )
80
+ assert(result, "Product.execute() returned false.")
81
+
82
+ output = plugin.data[0]
83
+ assert(output == expected, "Output did not match expected.")
84
+
85
+ end
86
+
87
+ #-------------------------------------------------------------------------------------------------------------#
88
+ # test_parsedecision_parse - Test the parseFile function
89
+ #
90
+ #------------------------------------------------------------------------------------------------------------#
91
+ def INOPtest_parsedecision_parse
92
+ target = Parser.new
93
+ assert(nil != target)
94
+
95
+ fname = "2.decision.txt"
96
+ srcFile = File.join(@dataDir, fname)
97
+ assert(File.exists?(srcFile))
98
+
99
+ cleanOutput()
100
+
101
+ target.setOutdir(@outputDir)
102
+ target.parseFile(srcFile)
103
+
104
+ assert(File.exists?(File.join(@outputDir, "01-APP.xml")))
105
+ assert(File.exists?(File.join(@outputDir, "01-Mod-Forbear-PRODUCT.xml")))
106
+ assert(File.exists?(File.join(@outputDir, "01-Mod-Forgive-PRODUCT.xml")))
107
+ assert(File.exists?(File.join(@outputDir, "01-Mod-RateTerm-PRODUCT.xml")))
108
+ assert(File.exists?(File.join(@outputDir, "01-Mod-SAM-PRODUCT.xml")))
109
+ end
110
+
111
+ #-------------------------------------------------------------------------------------------------------------#
112
+ # test_parsedecision_does_something
113
+ #
114
+ #------------------------------------------------------------------------------------------------------------#
115
+ def test_plugin_product_does_something
116
+
117
+ end
118
+
119
+
120
+ end # TestPluginProduct
@@ -0,0 +1,90 @@
1
+ ##############################################################################
2
+ # File:: testconfig.rb
3
+ # Purpose:: Test Config class functionality
4
+ #
5
+ # Author:: Jeff McAffee 03/12/2010
6
+ # Copyright:: Copyright (c) 2010, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'test/unit' #(1)
11
+ require 'flexmock/test_unit'
12
+ #require 'testhelper/filecomparer'
13
+ require 'logger'
14
+
15
+ require 'fileutils'
16
+
17
+ require 'parse_decision'
18
+
19
+ class TestConfig < Test::Unit::TestCase #(3)
20
+ include FileUtils
21
+ include FlexMock::TestCase
22
+ include ParseDecision
23
+
24
+ #-------------------------------------------------------------------------------------------------------------#
25
+ # setup - Set up test fixture
26
+ #
27
+ #------------------------------------------------------------------------------------------------------------#
28
+ def setup
29
+ $LOG = Logger.new(STDERR)
30
+ $LOG.level = Logger::DEBUG
31
+ @baseDir = File.dirname(__FILE__)
32
+ @dataDir = File.join(@baseDir, "data")
33
+
34
+ end
35
+
36
+ #-------------------------------------------------------------------------------------------------------------#
37
+ # teardown - Clean up test fixture
38
+ #
39
+ #------------------------------------------------------------------------------------------------------------#
40
+ def teardown
41
+ end
42
+
43
+ #-------------------------------------------------------------------------------------------------------------#
44
+ # test_config_ctor - Test the constructor
45
+ #
46
+ #------------------------------------------------------------------------------------------------------------#
47
+ def test_config_ctor
48
+ target = Config.new(@dataDir)
49
+
50
+ assert(nil != target)
51
+ end
52
+
53
+ #-------------------------------------------------------------------------------------------------------------#
54
+ # test_config_writes_cfg_file
55
+ #
56
+ #------------------------------------------------------------------------------------------------------------#
57
+ def test_config_writes_cfg_file
58
+ targetFile = File.join(@dataDir, "pdconfig.yml")
59
+ rm_rf(targetFile) if(File.exists?(targetFile))
60
+
61
+ target = Config.new(@dataDir)
62
+ target.save
63
+
64
+ assert(File.exists?(targetFile), "Cfg file not written to disk")
65
+ end
66
+
67
+
68
+ #-------------------------------------------------------------------------------------------------------------#
69
+ # test_config_reads_cfg_file
70
+ #
71
+ #------------------------------------------------------------------------------------------------------------#
72
+ def test_config_reads_cfg_file
73
+ targetFile = File.join(@dataDir, "pdconfig.yml")
74
+ rm_rf(targetFile) if(File.exists?(targetFile))
75
+
76
+ expected = "Test Data"
77
+ helper = Config.new(@dataDir)
78
+ helper.cfg[:appPath] = expected
79
+ helper.save
80
+ helper = nil
81
+
82
+ target = Config.new(@dataDir)
83
+ target.load
84
+
85
+ assert(!target.cfg[:appPath].empty?, "Cfg file not read from disk")
86
+ assert(target.cfg[:appPath] == expected, "Cfg file contains incorrect data")
87
+ end
88
+
89
+
90
+ end # TestConfig
@@ -0,0 +1,103 @@
1
+ ##############################################################################
2
+ # File:: test_context.rb
3
+ # Purpose:: Test PDContext class functionality
4
+ #
5
+ # Author:: Jeff McAffee 03/12/2010
6
+ # Copyright:: Copyright (c) 2010, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'test/unit' #(1)
11
+ require 'flexmock/test_unit'
12
+ #require 'testhelper/filecomparer'
13
+ require 'logger'
14
+
15
+ require 'fileutils'
16
+
17
+ require 'parser'
18
+
19
+ class TestPDContext < Test::Unit::TestCase #(3)
20
+ include FileUtils
21
+ include FlexMock::TestCase
22
+ include ParseDecision
23
+
24
+ #-------------------------------------------------------------------------------------------------------------#
25
+ # setup - Set up test fixture
26
+ #
27
+ #------------------------------------------------------------------------------------------------------------#
28
+ def setup
29
+ $LOG = Logger.new(STDERR)
30
+ $LOG.level = Logger::DEBUG
31
+ @baseDir = File.dirname(__FILE__)
32
+ @dataDir = File.join(@baseDir, "data")
33
+
34
+ end
35
+
36
+ #-------------------------------------------------------------------------------------------------------------#
37
+ # teardown - Clean up test fixture
38
+ #
39
+ #------------------------------------------------------------------------------------------------------------#
40
+ def teardown
41
+ end
42
+
43
+ #-------------------------------------------------------------------------------------------------------------#
44
+ # test_pdcontext_ctor - Test the constructor
45
+ #
46
+ #------------------------------------------------------------------------------------------------------------#
47
+ def test_pdcontext_ctor
48
+ target = PDContext.new
49
+
50
+ assert(nil != target)
51
+ end
52
+
53
+
54
+ def test_pdcontext_data
55
+ ctx = PDContext.new
56
+ target = :testVal
57
+ expected = "This is a Test Value"
58
+
59
+ ctx[target] = expected
60
+
61
+ assert(ctx[target] == expected)
62
+ end
63
+
64
+
65
+ def test_pdcontext_nil_data
66
+ ctx = PDContext.new
67
+ target = :testVal
68
+
69
+ assert(ctx[target].nil?)
70
+ end
71
+
72
+
73
+ def test_pdcontext_set_parsemode
74
+ ctx = PDContext.new
75
+ target = :webdecision
76
+
77
+ ctx.parseMode = target
78
+ assert(ctx.parseMode == target)
79
+ end
80
+
81
+
82
+ def test_pdcontext_set_invalid_parsemode
83
+ ctx = PDContext.new
84
+ target = :badMode
85
+ expected = :default
86
+
87
+ ctx.parseMode = expected
88
+ ctx.parseMode = target
89
+ assert(ctx.parseMode == expected)
90
+ end
91
+
92
+
93
+
94
+ #-------------------------------------------------------------------------------------------------------------#
95
+ # test_pdcontext_does_something
96
+ #
97
+ #------------------------------------------------------------------------------------------------------------#
98
+ def test_pdcontext_does_something
99
+
100
+ end
101
+
102
+
103
+ end # TestPDContext
@@ -0,0 +1,121 @@
1
+ ##############################################################################
2
+ # File:: test_parse_webdecision.rb
3
+ # Purpose:: Test ParseDecision::Parser.parse functionality when given a
4
+ # webdecision file.
5
+ #
6
+ # Author:: Jeff McAffee 03/23/2010
7
+ # Copyright:: Copyright (c) 2010, kTech Systems LLC. All rights reserved.
8
+ # Website:: http://ktechsystems.com
9
+ ##############################################################################
10
+
11
+ require 'test/unit' #(1)
12
+ require 'flexmock/test_unit'
13
+ #require 'testhelper/filecomparer'
14
+ require 'logger'
15
+
16
+ require 'fileutils'
17
+
18
+ require 'parse_decision'
19
+
20
+ class TestParseWebDecision < Test::Unit::TestCase #(3)
21
+ include FileUtils
22
+ include FlexMock::TestCase
23
+ include ParseDecision
24
+
25
+ #-------------------------------------------------------------------------------------------------------------#
26
+ # setup - Set up test fixture
27
+ #
28
+ #------------------------------------------------------------------------------------------------------------#
29
+ def setup
30
+ $LOG = Logger.new(STDERR)
31
+ $LOG.level = Logger::DEBUG
32
+ @baseDir = File.dirname(__FILE__)
33
+ @dataDir = File.join(@baseDir, "data")
34
+ @outputDir = File.join(@dataDir, "output-webdecision")
35
+ cleanOutput
36
+
37
+ end
38
+
39
+ #-------------------------------------------------------------------------------------------------------------#
40
+ # teardown - Clean up test fixture
41
+ #
42
+ #------------------------------------------------------------------------------------------------------------#
43
+ def teardown
44
+ end
45
+
46
+ #-------------------------------------------------------------------------------------------------------------#
47
+ # cleanOutput - Clean up output directory
48
+ #
49
+ #------------------------------------------------------------------------------------------------------------#
50
+ def cleanOutput
51
+ if(!File.exists?(@outputDir))
52
+ FileUtils.mkdir(@outputDir)
53
+ return
54
+ end
55
+
56
+ if(File.directory?(@outputDir))
57
+ FileUtils.rm_r(@outputDir)
58
+ FileUtils.mkdir(@outputDir)
59
+ end
60
+
61
+
62
+ end
63
+
64
+ #-------------------------------------------------------------------------------------------------------------#
65
+ # test_parse_webdecision - Test the parseFile function
66
+ #
67
+ #------------------------------------------------------------------------------------------------------------#
68
+ def test_parse_webdecision
69
+ target = Parser.new
70
+ assert(nil != target)
71
+
72
+ fname = "2.2.decision.txt"
73
+ srcFile = File.join(@dataDir, fname)
74
+ assert(File.exists?(srcFile))
75
+
76
+ cleanOutput()
77
+
78
+ target.setOutdir(@outputDir)
79
+ target.parseFile(srcFile)
80
+
81
+ puts "OUTPUT DIR: #{@outputDir}"
82
+
83
+ assert(File.exists?(File.join(@outputDir, "01-APP.xml")))
84
+ assert(File.exists?(File.join(@outputDir, "01-Product01-PRODUCT.xml")))
85
+ #assert(File.exists?(File.join(@outputDir, "01-decisionResponse.xml")))
86
+ end
87
+
88
+ #-------------------------------------------------------------------------------------------------------------#
89
+ # ztest_parsedecision_parse - Test the parseFile function
90
+ #
91
+ #------------------------------------------------------------------------------------------------------------#
92
+ def ztest_parsedecision_parse
93
+ target = Parser.new
94
+ assert(nil != target)
95
+
96
+ fname = "2.decision.txt"
97
+ srcFile = File.join(@dataDir, fname)
98
+ assert(File.exists?(srcFile))
99
+
100
+ cleanOutput()
101
+
102
+ target.setOutdir(@outputDir)
103
+ target.parseFile(srcFile)
104
+
105
+ assert(File.exists?(File.join(@outputDir, "01-APP.xml")))
106
+ assert(File.exists?(File.join(@outputDir, "01-Mod-Forbear-PRODUCT.xml")))
107
+ assert(File.exists?(File.join(@outputDir, "01-Mod-Forgive-PRODUCT.xml")))
108
+ assert(File.exists?(File.join(@outputDir, "01-Mod-RateTerm-PRODUCT.xml")))
109
+ assert(File.exists?(File.join(@outputDir, "01-Mod-SAM-PRODUCT.xml")))
110
+ end
111
+
112
+ #-------------------------------------------------------------------------------------------------------------#
113
+ # ztest_parsedecision_does_something
114
+ #
115
+ #------------------------------------------------------------------------------------------------------------#
116
+ def ztest_parsedecision_does_something
117
+
118
+ end
119
+
120
+
121
+ end # TestParseWebDecision
@@ -0,0 +1,69 @@
1
+ ##############################################################################
2
+ # File:: test_parser.rb
3
+ # Purpose:: Test ParseDecision class functionality
4
+ #
5
+ # Author:: Jeff McAffee 03/12/2010
6
+ # Copyright:: Copyright (c) 2010, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'test/unit' #(1)
11
+ require 'flexmock/test_unit'
12
+ #require 'testhelper/filecomparer'
13
+ require 'logger'
14
+
15
+ require 'fileutils'
16
+
17
+ require 'parser'
18
+
19
+ class TestParser < Test::Unit::TestCase #(3)
20
+ include FileUtils
21
+ include FlexMock::TestCase
22
+ include ParseDecision
23
+
24
+ #-------------------------------------------------------------------------------------------------------------#
25
+ # setup - Set up test fixture
26
+ #
27
+ #------------------------------------------------------------------------------------------------------------#
28
+ def setup
29
+ $LOG = Logger.new(STDERR)
30
+ $LOG.level = Logger::DEBUG
31
+ @baseDir = File.dirname(__FILE__)
32
+ @dataDir = File.join(@baseDir, "data")
33
+
34
+ end
35
+
36
+ #-------------------------------------------------------------------------------------------------------------#
37
+ # teardown - Clean up test fixture
38
+ #
39
+ #------------------------------------------------------------------------------------------------------------#
40
+ def teardown
41
+ end
42
+
43
+ #-------------------------------------------------------------------------------------------------------------#
44
+ # test_parser_ctor - Test the constructor
45
+ #
46
+ #------------------------------------------------------------------------------------------------------------#
47
+ def test_parser_ctor
48
+ target = Parser.new
49
+
50
+ assert(nil != target)
51
+ end
52
+
53
+
54
+ def test_parser_data
55
+ target = Parser.new
56
+
57
+ assert(nil != target)
58
+ end
59
+
60
+ #-------------------------------------------------------------------------------------------------------------#
61
+ # test_parser_does_something
62
+ #
63
+ #------------------------------------------------------------------------------------------------------------#
64
+ def test_parser_does_something
65
+
66
+ end
67
+
68
+
69
+ end # TestParser