unageanu-jiji 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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'