OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/shogi-server/shogi-server
authorDaigo Moriwaki <daigo@debian.org>
Sat, 7 Jan 2012 03:41:42 +0000 (12:41 +0900)
committerDaigo Moriwaki <daigo@debian.org>
Sat, 7 Jan 2012 03:41:42 +0000 (12:41 +0900)
Conflicts:
changelog

changelog
shogi_server/league/floodgate.rb
test/TC_floodgate_next_time_generator.rb

index 0175279..9ee5707 100644 (file)
--- a/changelog
+++ b/changelog
@@ -4,6 +4,13 @@
          - test/TC_logger.rb depeneded on a specific directory where it was
            running on. This issues has been fixed.
 
+2012-01-01  Daigo Moriwaki <daigo at debian dot org>
+
+       * [shogi-server]
+         - shogi_server/floodgate.rb: Generating next time around the new
+           year day by reading configuration files did not work correctly.
+           This issue has been fixed.
+
 2011-12-18  Daigo Moriwaki <daigo at debian dot org>
 
        * [sohgi-server]
index f721d3a..b5478b9 100644 (file)
@@ -120,7 +120,7 @@ class League
             next if dow_index.nil?
             next unless (0..23).include?(hour)
             next unless (0..59).include?(minute)
-            time = DateTime::commercial(now.year, now.cweek, dow_index, hour, minute) rescue next
+            time = DateTime::commercial(now.cwyear, now.cweek, dow_index, hour, minute) rescue next
             time += 7 if time <= now 
             candidates << time
           end
index 65d928e..2388634 100644 (file)
@@ -85,6 +85,11 @@ class TestNextTimeGenerator_900_0 < Test::Unit::TestCase
     now = Time.mktime(2009,12,31,23,50)
     assert_equal(Time.mktime(2010,1,1,0,0), @next.call(now))
   end
+
+  def test_50_min_new_year
+    now = Time.mktime(2012,1,1,0,0)
+    assert_equal(Time.mktime(2012,1,1,0,30), @next.call(now))
+  end
 end
 
 class TestNextTimeGenerator_3600_0 < Test::Unit::TestCase
@@ -126,6 +131,11 @@ class TestNextTimeGenerator_3600_0 < Test::Unit::TestCase
     now = Time.mktime(2009,12,31,23,30)
     assert_equal(Time.mktime(2010,1,1,1,0), @next.call(now))
   end
+
+  def test_new_year
+    now = Time.mktime(2012,1,1,0,0)
+    assert_equal(Time.mktime(2012,1,1,1,0), @next.call(now))
+  end
 end
 
 class TestNextTimeGeneratorConfig < Test::Unit::TestCase
@@ -153,6 +163,30 @@ class TestNextTimeGeneratorConfig < Test::Unit::TestCase
     assert_equal Time.parse("17-06-2010 20:00"), ntc.call(now)
   end
 
+  def test_next_year01
+    now = DateTime.new(2011, 12, 30, 21, 20, 15) # Fri
+    ntc = ShogiServer::League::Floodgate::NextTimeGeneratorConfig.new ["Sun 00:00"]
+    assert_equal Time.parse("01-01-2012 00:00"), ntc.call(now)
+    ntc = ShogiServer::League::Floodgate::NextTimeGeneratorConfig.new ["Sun 01:00"]
+    assert_equal Time.parse("01-01-2012 01:00"), ntc.call(now)
+  end
+
+  def test_next_year02
+    now = DateTime.new(2011, 12, 30, 21, 20, 15) # Fri
+    ntc = ShogiServer::League::Floodgate::NextTimeGeneratorConfig.new ["Mon 00:00"]
+    assert_equal Time.parse("02-01-2012 00:00"), ntc.call(now)
+    ntc = ShogiServer::League::Floodgate::NextTimeGeneratorConfig.new ["Mon 01:00"]
+    assert_equal Time.parse("02-01-2012 01:00"), ntc.call(now)
+  end
+
+  def test_new_year
+    now = DateTime.new(2012, 1, 1, 1) # Sun; cwyear=2011, cweek=52
+    ntc = ShogiServer::League::Floodgate::NextTimeGeneratorConfig.new ["Mon 00:00"]
+    assert_equal Time.parse("02-01-2012 00:00"), ntc.call(now)
+    ntc = ShogiServer::League::Floodgate::NextTimeGeneratorConfig.new ["Sat 00:00"]
+    assert_equal Time.parse("07-01-2012 00:00"), ntc.call(now)
+  end
+
   def test_read_time
     now = Time.mktime(2010, 6, 10, 21, 20, 15)
     ntc = ShogiServer::League::Floodgate::NextTimeGeneratorConfig.new ["Thu 22:00"]