Test get_nodes_undelete methods of the OldWay model
authorTom Hughes <tom@compton.nu>
Thu, 5 Dec 2013 17:49:06 +0000 (17:49 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 5 Dec 2013 17:49:06 +0000 (17:49 +0000)
app/models/old_way.rb
test/unit/old_way_test.rb

index e5ba538..1552bae 100644 (file)
@@ -105,12 +105,10 @@ class OldWay < ActiveRecord::Base
   # (i.e. is it visible? are we actually reverting to an earlier version?)
 
   def get_nodes_undelete
-    points = []
-    self.nds.each do |n|
+    self.nds.collect do |n|
       node = Node.find(n)
-      points << [node.lon, node.lat, n, node.version, node.tags_as_hash, node.visible]
+      [node.lon, node.lat, n, node.version, node.tags_as_hash, node.visible]
     end
-    points
   end
   
   def get_nodes_revert(timestamp)
index 909f9de..44975d1 100644 (file)
@@ -87,4 +87,18 @@ class OldWayTest < ActiveSupport::TestCase
     assert_equal "added in way version 3", tags["testing"]
     assert_equal "modified in way version 4", tags["testing two"]
   end
+
+  def test_get_nodes_undelete
+    way = ways(:way_with_versions_v3)
+    nodes = OldWay.find(way.id).get_nodes_undelete
+    assert_equal 2, nodes.size
+    assert_equal [1.0, 1.0, 15, 4, {"testing" => "added in node version 3", "testing two" => "modified in node version 4"}, true], nodes[0]
+    assert_equal [3.0, 3.0, 3, 1, {"test" => "yes"}, true], nodes[1]
+
+    way = ways(:way_with_redacted_versions_v2)
+    nodes = OldWay.find(way.id).get_nodes_undelete
+    assert_equal 2, nodes.size
+    assert_equal [3.0, 3.0, 3, 1, {"test" => "yes"}, true], nodes[0]
+    assert_equal [2.0, 2.0, 2, 1, {"testused" => "yes"}, false], nodes[1]
+  end
 end