Added more fixtures and tests for node versioning calls.
authorMatt Amos <zerebubuth@gmail.com>
Wed, 15 Oct 2008 11:12:26 +0000 (11:12 +0000)
committerMatt Amos <zerebubuth@gmail.com>
Wed, 15 Oct 2008 11:12:26 +0000 (11:12 +0000)
test/fixtures/changesets.yml
test/fixtures/current_node_tags.yml
test/fixtures/current_nodes.yml
test/fixtures/node_tags.yml
test/fixtures/nodes.yml
test/functional/old_node_controller_test.rb
test/unit/current_node_tag_test.rb

index de6f4f7..7d97f2a 100644 (file)
@@ -16,3 +16,9 @@ normal_user_closed_change:
   user_id: 1
   created_at: "2007-01-01 00:00:00"
   open: 0
+
+normal_user_version_change:
+  id: 4
+  user_id: 1
+  created_at: "2008-01-01 00:00:00"
+  open: 1
index ce68a54..8a699e9 100644 (file)
@@ -13,3 +13,17 @@ t3:
   k: test
   v: yes
 
+t4:
+  id: 4
+  k: test
+  v: yes
+
+nv_t1:
+  id: 15
+  k: testing
+  v: added in node version 3
+
+nv_t2:
+  id: 15
+  k: testing two
+  v: modified in node version 4
index 7407b29..7e4f33a 100644 (file)
@@ -141,3 +141,12 @@ node_totally_wrong:
   tile: <%= QuadTile.tile_for_point(200,200) %>
   timestamp: 2007-01-01 00:00:00
   
+node_with_versions:
+  id: 15
+  latitude: <%= 1*SCALE %>
+  longitude: <%= 1*SCALE %>
+  changeset_id: 4
+  visible: 1
+  version: 4
+  tile: <%= QuadTile.tile_for_point(1,1) %>
+  timestamp: 2008-01-01 00:04:00
index 8c80128..c6a3118 100644 (file)
@@ -6,7 +6,7 @@ t1:
 
 t2:
   id: 3
-  k: testused
+  k: test
   v: yes
   version: 1
 
@@ -15,3 +15,33 @@ t3:
   k: test
   v: yes
   version: 1
+
+nv3_t1:
+  id: 15
+  k: testing
+  v: added in node version 3
+  version: 3
+
+nv3_t2:
+  id: 15
+  k: testing two
+  v: added in node version 3
+  version: 3
+
+nv3_t3:
+  id: 15
+  k: testing three
+  v: added in node version 3
+  version: 3
+
+nv4_t1:
+  id: 15
+  k: testing
+  v: added in node version 3
+  version: 4
+
+nv4_t2:
+  id: 15
+  k: testing two
+  v: modified in node version 4
+  version: 4
index ddcf1d8..c58cda9 100644 (file)
@@ -141,3 +141,42 @@ node_totally_wrong:
   tile: <%= QuadTile.tile_for_point(200,200) %>
   timestamp: 2007-01-01 00:00:00
   
+node_with_versions_v1:
+  id: 15
+  latitude: <%= 1*SCALE %>
+  longitude: <%= 1*SCALE %>
+  changeset_id: 4
+  visible: 1
+  version: 1
+  tile: <%= QuadTile.tile_for_point(1,1) %>
+  timestamp: 2008-01-01 00:01:00
+
+node_with_versions_v2:
+  id: 15
+  latitude: <%= 2*SCALE %>
+  longitude: <%= 2*SCALE %>
+  changeset_id: 4
+  visible: 1
+  version: 2
+  tile: <%= QuadTile.tile_for_point(1,1) %>
+  timestamp: 2008-01-01 00:02:00
+
+node_with_versions_v3:
+  id: 15
+  latitude: <%= 1*SCALE %>
+  longitude: <%= 1*SCALE %>
+  changeset_id: 4
+  visible: 1
+  version: 3
+  tile: <%= QuadTile.tile_for_point(1,1) %>
+  timestamp: 2008-01-01 00:03:00
+
+node_with_versions_v4:
+  id: 15
+  latitude: <%= 1*SCALE %>
+  longitude: <%= 1*SCALE %>
+  changeset_id: 4
+  visible: 1
+  version: 4
+  tile: <%= QuadTile.tile_for_point(1,1) %>
+  timestamp: 2008-01-01 00:04:00
index 50d69e9..4b0cf03 100644 (file)
@@ -83,18 +83,47 @@ class OldNodeControllerTest < Test::Unit::TestCase
     end
   end
 
+  ##
+  # Test that getting the current version is identical to picking
+  # that version with the version URI call.
+  def test_current_version
+    check_current_version(current_nodes(:visible_node))
+    check_current_version(current_nodes(:used_node_1))
+    check_current_version(current_nodes(:used_node_2))
+    check_current_version(current_nodes(:node_used_by_relationship))
+    check_current_version(current_nodes(:node_with_versions))
+  end
+  
+  def check_current_version(node_id)
+    # get the current version of the node
+    current_node = with_controller(NodeController.new) do
+      get :read, :id => node_id
+      assert_response :success, "cant get current node #{node_id}" 
+      Node.from_xml(@response.body)
+    end
+    assert_not_nil current_node, "getting node #{node_id} returned nil"
+
+    # get the "old" version of the node from the old_node interface
+    get :version, :id => node_id, :version => current_node.version
+    assert_response :success, "cant get old node #{node_id}, v#{current_node.version}" 
+    old_node = Node.from_xml(@response.body)
+
+    # check the nodes are the same
+    assert_nodes_are_equal current_node, old_node
+  end
+
   ##
   # for some reason a==b is false, but there doesn't seem to be any 
   # difference between the nodes, so i'm checking all the attributes 
   # manually and blaming it on ActiveRecord
   def assert_nodes_are_equal(a, b)
     assert_equal a.id, b.id, "node IDs"
-    assert_equal a.latitude, b.latitude, "latitude"
-    assert_equal a.longitude, b.longitude, "longitude"
-    assert_equal a.changeset_id, b.changeset_id, "changeset ID"
-    assert_equal a.visible, b.visible, "visible"
-    assert_equal a.version, b.version, "version"
-    assert_equal a.tags, b.tags, "tags"
+    assert_equal a.latitude, b.latitude, "latitude on node #{a.id}"
+    assert_equal a.longitude, b.longitude, "longitude on node #{a.id}"
+    assert_equal a.changeset_id, b.changeset_id, "changeset ID on node #{a.id}"
+    assert_equal a.visible, b.visible, "visible on node #{a.id}"
+    assert_equal a.version, b.version, "version on node #{a.id}"
+    assert_equal a.tags, b.tags, "tags on node #{a.id}"
   end
 
   ##
index 7fb1def..98bceb4 100644 (file)
@@ -6,10 +6,12 @@ class CurrentNodeTagTest < Test::Unit::TestCase
   set_fixture_class :current_node_tags => :NodeTag
   
   def test_tag_count
-    assert_equal 3, NodeTag.count
+    assert_equal 6, NodeTag.count
     node_tag_count(:visible_node, 1)
     node_tag_count(:invisible_node, 1)
     node_tag_count(:used_node_1, 1)
+    node_tag_count(:used_node_2, 1)
+    node_tag_count(:node_with_versions, 2)
   end
   
   def node_tag_count (node, count)