unageanu-jiji 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. data/ChangeLog +3 -0
  2. data/bin/jiji +1 -1
  3. data/html/swf/chart.swf +0 -0
  4. data/lib/jiji/agent/agent.rb +0 -1
  5. data/lib/jiji/agent/agent_manager.rb +0 -1
  6. data/lib/jiji/collector.rb +14 -17
  7. data/lib/jiji/command.rb +40 -12
  8. data/lib/jiji/configuration.rb +8 -2
  9. data/lib/jiji/dao/trade_result_dao.rb +1 -1
  10. data/lib/jiji/migration/migrator1_1_0.rb +46 -0
  11. data/lib/jiji/models.rb +1 -5
  12. data/lib/jiji/operator.rb +12 -30
  13. data/lib/jiji/plugin/embedded/click_securities_demo_plugin.rb +140 -0
  14. data/lib/jiji/plugin/embedded/single_click_client.rb +107 -0
  15. data/lib/jiji/plugin/plugin_loader.rb +53 -0
  16. data/lib/jiji/plugin/securities_plugin.rb +135 -0
  17. data/lib/jiji/registry.rb +24 -19
  18. data/lib/jiji/server.rb +3 -1
  19. data/lib/jiji/service/rate_service.rb +7 -2
  20. data/lib/jiji/util/block_to_session.rb +4 -4
  21. data/lib/jiji/util/util.rb +0 -67
  22. data/lib/jiji_plugin.rb +6 -0
  23. data/swf/build.xml +1 -1
  24. data/swf/chart/fx/chart/Chart.as +6 -4
  25. data/swf/chart/fx/chart/ctrl/Controller.as +12 -0
  26. data/swf/chart/fx/chart/model/Model.as +3 -1
  27. data/swf/chart/fx/chart/ui/RangeInfoWindow.as +1 -1
  28. data/swf/chart/fx/chart/ui/ScaleSelector.as +6 -17
  29. data/test/OutputregistryTest/conf/configuration.yaml +3 -0
  30. data/test/ProcessManagerTest/conf/configuration.yaml +4 -17
  31. data/test/{test_AgentManager.rb → agent/test_AgentManager.rb} +37 -39
  32. data/test/{test_AgentRegistry.rb → agent/test_AgentRegistry.rb} +3 -2
  33. data/test/{test_PeriodicallyAgent.rb → agent/test_PeriodicallyAgent.rb} +7 -6
  34. data/test/{test_Permitter.rb → agent/test_Permitter.rb} +10 -9
  35. data/test/all_tests.rb +31 -24
  36. data/test/{test_RateDao.rb → dao/test_RateDao.rb} +5 -5
  37. data/test/{test_TradeResultDao.rb → dao/test_TradeResultDao.rb} +12 -11
  38. data/test/jiji_plugin.rb +7 -0
  39. data/test/migration/migrator1_1_0test_data/configuration.yaml +11 -0
  40. data/test/migration/test_Migrator1_1_0.rb +56 -0
  41. data/test/{test_SingleClickClient.rb → plugin/embedded/test_SingleClickClient.rb} +44 -14
  42. data/test/plugin/error_test/jiji_plugin.rb +2 -0
  43. data/test/plugin/test/foo_plugin.rb +1 -0
  44. data/test/plugin/test/jiji_plugin.rb +2 -0
  45. data/test/plugin/test_Loader.rb +33 -0
  46. data/test/plugin/test_gem/a/jiji_plugin_test_gem_a-1.0.0.gem +0 -0
  47. data/test/plugin/test_gem/a/jiji_plugin_test_gem_a.gemspec +10 -0
  48. data/test/plugin/test_gem/a/lib/jiji_plugin.rb +2 -0
  49. data/test/plugin/test_gem/a/lib/jiji_plugin_test.rb +6 -0
  50. data/test/plugin/test_gem/b/jiji_plugin_test_gem_b-1.0.0.gem +0 -0
  51. data/test/plugin/test_gem/b/jiji_plugin_test_gem_b.gemspec +9 -0
  52. data/test/plugin/test_gem/b/lib/jiji_plugin.rb +2 -0
  53. data/test/test_BackTestCollector.rb +12 -20
  54. data/test/test_Collector.rb +16 -32
  55. data/test/test_Configuration.rb +3 -3
  56. data/test/test_Operator.rb +9 -9
  57. data/test/test_Output.rb +2 -3
  58. data/test/test_Output_registry.rb +9 -9
  59. data/test/test_Process.rb +6 -6
  60. data/test/test_ProcessManager.rb +11 -9
  61. data/test/test_utils.rb +49 -0
  62. data/test/{test_BlockToSession.rb → util/test_BlockToSession.rb} +57 -9
  63. data/test/{test_CSV.rb → util/test_CSV.rb} +5 -5
  64. data/test/{test_SynchronizeInterceptor.rb → util/test_SynchronizeInterceptor.rb} +5 -3
  65. metadata +59 -26
  66. data/lib/jiji/single_click_client.rb +0 -95
  67. data/test/test_configuration.yaml +0 -16
  68. data/test/testutils.rb +0 -37
@@ -2,15 +2,15 @@
2
2
 
3
3
  $: << "../lib"
4
4
 
5
-
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
8
- require "jiji/configuration"
9
- require "jiji/collector"
10
- require "jiji/operator"
11
- require "jiji/observer"
12
- require "jiji/single_click_client"
13
- require "testutils.rb"
5
+ require 'rubygems'
6
+ require 'runit/testcase'
7
+ require 'runit/cui/testrunner'
8
+ require 'jiji/configuration'
9
+ require 'jiji/collector'
10
+ require 'jiji/operator'
11
+ require 'jiji/observer'
12
+ require 'jiji/plugin/securities_plugin'
13
+ require 'test_utils'
14
14
  require 'logger'
15
15
  require 'csv'
16
16
  require 'date'
@@ -26,13 +26,12 @@ class BackTestCollectorTest < RUNIT::TestCase
26
26
  @dir = File.dirname(__FILE__) + "/BackCollectorTest"
27
27
 
28
28
  @logger = Logger.new STDOUT
29
- @client = JIJI::SingleClickClient.new( ACCOUNT, CONF, @logger )
29
+ @client = Test::MockClient.new
30
30
  @rate_dao = JIJI::Dao::RateDao.new( @dir )
31
31
  end
32
32
 
33
33
  # 後始末
34
34
  def teardown
35
- @client.close
36
35
  end
37
36
 
38
37
  # 通常のログを使ったテスト
@@ -147,15 +146,8 @@ class BackTestCollectorTest < RUNIT::TestCase
147
146
 
148
147
  # リクエストの送付でエラーになる。
149
148
  class << c.client
150
- def request
151
- super {|fx|
152
- class << fx
153
- def list_currency_pairs
154
- raise "test list_rates ."
155
- end
156
- end
157
- yield fx
158
- }
149
+ def list_pairs
150
+ raise "test list_rates ."
159
151
  end
160
152
  end
161
153
 
@@ -2,16 +2,15 @@
2
2
 
3
3
  $: << "../lib"
4
4
 
5
-
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
8
- require "jiji/configuration"
9
- require "jiji/collector"
10
- require "jiji/operator"
11
- require "jiji/observer"
12
- require "jiji/single_click_client"
5
+ require 'rubygems'
6
+ require 'runit/testcase'
7
+ require 'runit/cui/testrunner'
8
+ require 'jiji/configuration'
9
+ require 'jiji/collector'
10
+ require 'jiji/operator'
11
+ require 'jiji/observer'
13
12
  require 'jiji/dao/rate_dao'
14
- require "testutils.rb"
13
+ require 'test_utils'
15
14
  require 'logger'
16
15
  require 'csv'
17
16
 
@@ -22,12 +21,12 @@ class CollectorTest < RUNIT::TestCase
22
21
 
23
22
  # 前準備
24
23
  def setup
25
-
26
24
  @dir = File.dirname(__FILE__) + "/CollectorTest.tmp"
25
+ FileUtils.rm_rf @dir if File.exist?( @dir )
27
26
  FileUtils.mkdir_p @dir
28
27
 
29
28
  @logger = Logger.new STDOUT
30
- @client = JIJI::SingleClickClient.new( ACCOUNT, CONF, @logger )
29
+ @client = Test::MockClient.new
31
30
 
32
31
  @c = JIJI::Collector.new
33
32
  @c.logger = @logger
@@ -37,7 +36,6 @@ class CollectorTest < RUNIT::TestCase
37
36
 
38
37
  # 後始末
39
38
  def teardown
40
- @client.close
41
39
  FileUtils.rm_rf @dir
42
40
  end
43
41
 
@@ -78,14 +76,14 @@ class CollectorTest < RUNIT::TestCase
78
76
  date = Time.now.strftime("%Y-%m-%d")
79
77
 
80
78
  count = 0
81
- CSV.open("#{@dir}/AUDJPY/raw/#{date}.csv", 'r') {|row|
79
+ CSV.open("#{@dir}/EURJPY/raw/#{date}.csv", 'r') {|row|
82
80
  assert_equals row.length, 6
83
81
  count += 1
84
82
  }
85
83
  assert_equals count > 0, true
86
84
 
87
85
  count = 0
88
- CSV.open("#{@dir}/AUDJPY/5s/#{date}.csv", 'r') {|row|
86
+ CSV.open("#{@dir}/EURJPY/5s/#{date}.csv", 'r') {|row|
89
87
  assert_equals row.length, 19
90
88
  count += 1
91
89
  }
@@ -164,15 +162,8 @@ class CollectorTest < RUNIT::TestCase
164
162
 
165
163
  # リクエストの送付でエラーになる。
166
164
  class << @c.client
167
- def request
168
- super {|fx|
169
- class << fx
170
- def list_currency_pairs
171
- raise "test list_rates ."
172
- end
173
- end
174
- yield fx
175
- }
165
+ def list_pairs
166
+ raise "test list_rates ."
176
167
  end
177
168
  end
178
169
 
@@ -210,15 +201,8 @@ class CollectorTest < RUNIT::TestCase
210
201
 
211
202
  # レートの取得でエラーになる。
212
203
  class << @c.client
213
- def request
214
- super {|fx|
215
- class << fx
216
- def list_rates
217
- raise "test list_rates ."
218
- end
219
- end
220
- yield fx
221
- }
204
+ def list_rates
205
+ raise "test list_rates ."
222
206
  end
223
207
  end
224
208
 
@@ -3,9 +3,9 @@
3
3
  $: << "../lib"
4
4
 
5
5
 
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
8
- require "jiji/configuration"
6
+ require 'runit/testcase'
7
+ require 'runit/cui/testrunner'
8
+ require 'jiji/configuration'
9
9
 
10
10
  class ConfigurationTest < RUNIT::TestCase
11
11
 
@@ -2,17 +2,17 @@
2
2
 
3
3
  $: << "../lib"
4
4
 
5
-
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
8
- require "jiji/operator"
9
- require "jiji/collector"
5
+ require 'rubygems'
6
+ require 'runit/testcase'
7
+ require 'runit/cui/testrunner'
8
+ require 'jiji/operator'
9
+ require 'jiji/collector'
10
10
  require 'jiji/agent/agent'
11
11
  require 'jiji/agent/agent_manager'
12
12
  require 'jiji/agent/agent_registry'
13
13
  require 'jiji/agent/permitter'
14
14
  require 'jiji/agent/util'
15
- require "testutils"
15
+ require 'test_utils'
16
16
 
17
17
  class OperatorTest < RUNIT::TestCase
18
18
 
@@ -29,7 +29,7 @@ class OperatorTest < RUNIT::TestCase
29
29
  def test_basic
30
30
 
31
31
  pair_infos = {
32
- ClickClient::FX::EURJPY => Info.new( 10000 )
32
+ :EURJPY => Info.new( 10000 )
33
33
  }
34
34
 
35
35
  # 初期状態は建玉,損益共に0
@@ -308,7 +308,7 @@ class OperatorTest < RUNIT::TestCase
308
308
  def test_stop
309
309
 
310
310
  pair_infos = {
311
- ClickClient::FX::EURJPY => Info.new( 10000 )
311
+ :EURJPY => Info.new( 10000 )
312
312
  }
313
313
 
314
314
  # レートを挿入
@@ -374,7 +374,7 @@ class OperatorTest < RUNIT::TestCase
374
374
  def test_swap
375
375
 
376
376
  pair_infos = {
377
- ClickClient::FX::EURJPY => Info.new( 10000 )
377
+ :EURJPY => Info.new( 10000 )
378
378
  }
379
379
 
380
380
  # レートを挿入
data/test/test_Output.rb CHANGED
@@ -2,9 +2,8 @@
2
2
 
3
3
  $: << "../lib"
4
4
 
5
-
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
5
+ require 'runit/testcase'
6
+ require 'runit/cui/testrunner'
8
7
  require 'jiji/output'
9
8
  require 'fileutils'
10
9
 
@@ -3,11 +3,11 @@
3
3
  $: << "../lib"
4
4
 
5
5
 
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
6
+ require 'runit/testcase'
7
+ require 'runit/cui/testrunner'
8
8
  require 'jiji/registry'
9
- require "logger"
10
- require "testutils"
9
+ require 'logger'
10
+ require 'test_utils'
11
11
 
12
12
  # アウトプットのテスト(レジストリから取り出す)
13
13
  class OutputregistryTest < RUNIT::TestCase
@@ -17,6 +17,7 @@ class OutputregistryTest < RUNIT::TestCase
17
17
  def setup
18
18
  @dir = File.dirname(__FILE__) + "/OutputregistryTest"
19
19
  @registry = JIJI::Registry.new(@dir , nil)
20
+ @registry.plugin_loader.load
20
21
  @mng = @registry[:process_manager]
21
22
  end
22
23
 
@@ -26,15 +27,14 @@ class OutputregistryTest < RUNIT::TestCase
26
27
  begin
27
28
  @registry.permitter.close
28
29
  ensure
29
- begin
30
- @registry.client.close
31
- ensure
32
- @registry.server_logger.close
33
- end
30
+ @registry.server_logger.close
34
31
  end
35
32
  ensure
33
+ FileUtils.rm_rf "#{@dir}/agents"
36
34
  FileUtils.rm_rf "#{@dir}/logs"
37
35
  FileUtils.rm_rf "#{@dir}/process_logs"
36
+ FileUtils.rm_rf "#{@dir}/rate_datas"
37
+ FileUtils.rm_rf "#{@dir}/shared_lib"
38
38
  end
39
39
  end
40
40
 
data/test/test_Process.rb CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  $: << "../lib"
4
4
 
5
-
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
8
- require "jiji/process"
5
+ require 'rubygems'
6
+ require 'runit/testcase'
7
+ require 'runit/cui/testrunner'
8
+ require 'jiji/process'
9
9
  require 'jiji/agent/agent'
10
10
  require 'jiji/agent/agent_manager'
11
11
  require 'jiji/agent/agent_registry'
12
12
  require 'jiji/agent/permitter'
13
13
  require 'jiji/agent/util'
14
- require "logger"
15
- require "testutils"
14
+ require 'logger'
15
+ require 'test_utils'
16
16
 
17
17
  # プロセスのテスト
18
18
  class ProcessTest < RUNIT::TestCase
@@ -24,11 +24,11 @@ def Thread.new(*args, &b)
24
24
  }
25
25
  end
26
26
 
27
- require "runit/testcase"
28
- require "runit/cui/testrunner"
27
+ require 'runit/testcase'
28
+ require 'runit/cui/testrunner'
29
29
  require 'jiji/registry'
30
- require "logger"
31
- require "testutils"
30
+ require 'logger'
31
+ require 'test_utils'
32
32
 
33
33
  # プロセスマネージャのテスト
34
34
  class ProcessManagerTest < RUNIT::TestCase
@@ -37,7 +37,10 @@ class ProcessManagerTest < RUNIT::TestCase
37
37
 
38
38
  def setup
39
39
  @dir = File.dirname(__FILE__) + "/ProcessManagerTest"
40
+ FileUtils.rm_rf "#{@dir}/logs"
41
+ FileUtils.rm_rf "#{@dir}/process_logs"
40
42
  @registry = JIJI::Registry.new(@dir , nil)
43
+ @registry.plugin_loader.load
41
44
  @mng = @registry[:process_manager]
42
45
  end
43
46
 
@@ -48,7 +51,6 @@ class ProcessManagerTest < RUNIT::TestCase
48
51
  @registry.permitter.close
49
52
  ensure
50
53
  begin
51
- @registry.client.close
52
54
  ensure
53
55
  @registry.server_logger.close
54
56
  end
@@ -60,6 +62,7 @@ class ProcessManagerTest < RUNIT::TestCase
60
62
  ensure
61
63
  FileUtils.rm_rf "#{@dir}/logs"
62
64
  FileUtils.rm_rf "#{@dir}/process_logs"
65
+ FileUtils.rm_rf "#{@dir}/shared_lib"
63
66
  end
64
67
  end
65
68
 
@@ -337,16 +340,15 @@ class ProcessManagerTest < RUNIT::TestCase
337
340
  def recreate_registry
338
341
  begin
339
342
  @mng.stop
340
- begin
341
- @registry.permitter.close
343
+ ensure
344
+ begin
345
+ @registry.permitter.close
342
346
  ensure
343
347
  begin
344
- @registry.client.close
345
348
  ensure
346
349
  @registry.server_logger.close
347
350
  end
348
351
  end
349
- ensure
350
352
  return @registry = JIJI::Registry.new(@dir , nil)
351
353
  end
352
354
  end
@@ -0,0 +1,49 @@
1
+
2
+ $: << "../lib"
3
+
4
+ require 'rubygems'
5
+ require 'runit/testcase'
6
+ require 'runit/cui/testrunner'
7
+ require 'jiji/configuration'
8
+ require 'jiji/plugin/securities_plugin'
9
+ require 'fileutils'
10
+ require 'logger'
11
+ require 'jiji/util/json_rpc_requestor'
12
+
13
+ # テスト用ユーティリティなど。
14
+ module Test
15
+ module Constants
16
+
17
+ USER="<user-name>"
18
+ PASSWORD="<password>"
19
+
20
+ # テスト用設定値
21
+ CONF = JIJI::Configuration.new
22
+
23
+ Info = Struct.new( :trade_unit )
24
+ Rate = Struct.new( :bid, :ask, :sell_swap, :buy_swap, :date )
25
+
26
+ end
27
+
28
+ # テスト用クライアント
29
+ class MockClient
30
+ include JIJI::Plugin::SecuritiesPlugin
31
+ def plugin_id; :mock end
32
+ def list_pairs
33
+ [ Pair.new( :EURJPY, 10000 ), Pair.new( :USDJPY, 10000 ) ]
34
+ end
35
+ def list_rates
36
+ {:EURJPY=>Rate.new( 102.01, 102.05, 100, -100 ),
37
+ :USDJPY=>Rate.new( 102.01, 102.05, 100, -100 )}
38
+ end
39
+ end
40
+
41
+ # サービスのテストの抽象基底クラス
42
+ class AbstractServiceTest < RUNIT::TestCase
43
+ def setup
44
+ end
45
+ def teardown
46
+ end
47
+ end
48
+
49
+ end
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- $: << "../lib"
4
-
3
+ $: << "../../lib"
4
+ $: << "../"
5
5
 
6
6
  require "runit/testcase"
7
7
  require "runit/cui/testrunner"
@@ -11,12 +11,7 @@ require 'csv'
11
11
 
12
12
  class BlockToSessionTest < RUNIT::TestCase
13
13
 
14
- def setup
15
- end
16
-
17
- def teardown
18
- end
19
-
14
+ # 基本動作のテスト
20
15
  def test_basic
21
16
 
22
17
  buff = ""
@@ -57,8 +52,19 @@ class BlockToSessionTest < RUNIT::TestCase
57
52
  rescue Exception
58
53
  end
59
54
 
55
+ assert_equals "result3", s.request {|a,b,log|
56
+ log << "#{a}.#{b}.req."
57
+ "result3"
58
+ }
59
+ assert_equals buff, "start.a.b.wait.a.b.req.a.b.req.a.b.req."
60
+ assert_equals "result4", s.request {|a,b,log|
61
+ log << "#{a}.#{b}.req."
62
+ "result4"
63
+ }
64
+ assert_equals buff, "start.a.b.wait.a.b.req.a.b.req.a.b.req.a.b.req."
65
+
60
66
  s.close
61
- assert_equals buff, "start.a.b.wait.a.b.req.a.b.req.end."
67
+ assert_equals buff, "start.a.b.wait.a.b.req.a.b.req.a.b.req.a.b.req.end."
62
68
 
63
69
  end
64
70
 
@@ -71,4 +77,46 @@ class BlockToSessionTest < RUNIT::TestCase
71
77
  end
72
78
  end
73
79
 
80
+ # 基本動作のテスト
81
+ def test_error_session
82
+ s = create_session
83
+ begin
84
+ s.request {|x| x.call }
85
+ fail
86
+ rescue
87
+ s.close
88
+ s = create_session
89
+ begin
90
+ s.request {|x| x.call }
91
+ fail
92
+ rescue
93
+ end
94
+ end
95
+
96
+ begin
97
+ s.request {|x| x.call }
98
+ fail
99
+ rescue
100
+ end
101
+
102
+ end
103
+
104
+ def create_session
105
+ return Session.new { |wait|
106
+ wait.call( ErrorSession.new( "test" ) )
107
+ }
108
+ end
109
+
110
+
111
+ #接続エラー時に使用するセッション
112
+ #常にエラーをスローする。
113
+ class ErrorSession
114
+ def initialize(error)
115
+ @error = error
116
+ end
117
+ def method_missing(name, *args, &block)
118
+ raise @error
119
+ end
120
+ end
121
+
74
122
  end
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- $: << "../lib"
3
+ $: << "../../lib"
4
+ $: << "../"
4
5
 
5
-
6
- require "runit/testcase"
7
- require "runit/cui/testrunner"
6
+ require 'runit/testcase'
7
+ require 'runit/cui/testrunner'
8
8
  require 'jiji/util/csv_append_support'
9
9
  require 'fileutils'
10
10
 
@@ -15,7 +15,7 @@ class CSVTest < RUNIT::TestCase
15
15
  FileUtils.mkdir_p @dir
16
16
  end
17
17
 
18
- def teardown
18
+ def teardown
19
19
  FileUtils.rm_rf @dir
20
20
  end
21
21
 
@@ -1,9 +1,11 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- $: << "../lib"
3
+ $: << "../../lib"
4
+ $: << "../"
4
5
 
5
- require "runit/testcase"
6
- require "runit/cui/testrunner"
6
+ require 'rubygems'
7
+ require 'runit/testcase'
8
+ require 'runit/cui/testrunner'
7
9
  require 'rubygems'
8
10
  require 'needle'
9
11
  require 'jiji/util/synchronize_interceptor'