1 require File.dirname(__FILE__) + '/../test_helper'
3 class NodeTest < Test::Unit::TestCase
4 fixtures :current_nodes, :users, :current_node_tags,:nodes, :node_tags
5 set_fixture_class :current_nodes => :Node
6 set_fixture_class :nodes => :OldNode
7 set_fixture_class :node_tags => :OldNodeTag
8 set_fixture_class :currenr_node_tags => :NodeTag
10 def test_node_too_far_north
11 node = current_nodes(:node_too_far_north)
12 assert_equal node.lat, current_nodes(:node_too_far_north).latitude/SCALE
13 assert_equal node.lon, current_nodes(:node_too_far_north).longitude/SCALE
14 assert_equal false, node.valid?
17 def test_node_too_far_south
18 node = current_nodes(:node_too_far_south)
19 assert_equal node.lat, current_nodes(:node_too_far_south).latitude/SCALE
20 assert_equal node.lon, current_nodes(:node_too_far_south).longitude/SCALE
21 assert_equal false, node.valid?
24 def test_node_too_far_west
25 node = current_nodes(:node_too_far_west)
26 assert_equal node.lat, current_nodes(:node_too_far_west).latitude/SCALE
27 assert_equal node.lon, current_nodes(:node_too_far_west).longitude/SCALE
28 assert_equal false, node.valid?
31 def test_node_too_far_east
32 node = current_nodes(:node_too_far_east)
33 assert_equal node.lat, current_nodes(:node_too_far_east).latitude/SCALE
34 assert_equal node.lon, current_nodes(:node_too_far_east).longitude/SCALE
35 assert_equal false, node.valid?
38 def test_totally_wrong
39 node = current_nodes(:node_totally_wrong)
40 #assert_equal node.lat, current_nodes(:node_totally_wrong).latitude/SCALE
41 #assert_equal node.lon, current_nodes(:node_totally_wrong).longitude/SCALE
42 assert_equal false, node.valid?
46 node_template = Node.new(:latitude => 12.3456,
47 :longitude => 65.4321,
48 :user_id => users(:normal_user),
51 assert node_template.save_with_history!
53 node = Node.find(node_template.id)
55 assert_equal node_template.latitude, node.latitude
56 assert_equal node_template.longitude, node.longitude
57 assert_equal node_template.user_id, node.user_id
58 assert_equal node_template.visible, node.visible
59 assert_equal node_template.timestamp.to_i, node.timestamp.to_i
61 assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 1
62 old_node = OldNode.find(:first, :conditions => [ "id = ?", node_template.id ])
63 assert_not_nil old_node
64 assert_equal node_template.latitude, old_node.latitude
65 assert_equal node_template.longitude, old_node.longitude
66 assert_equal node_template.user_id, old_node.user_id
67 assert_equal node_template.visible, old_node.visible
68 assert_equal node_template.tags, old_node.tags
69 assert_equal node_template.timestamp.to_i, old_node.timestamp.to_i
73 node_template = Node.find(current_nodes(:visible_node).id)
74 assert_not_nil node_template
76 assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 1
77 old_node_template = OldNode.find(:first, :conditions => [ "id = ?", node_template.id ])
78 assert_not_nil old_node_template
80 node_template.latitude = 12.3456
81 node_template.longitude = 65.4321
82 #node_template.tags = "updated=yes"
83 assert node_template.save_with_history!
85 node = Node.find(node_template.id)
87 assert_equal node_template.latitude, node.latitude
88 assert_equal node_template.longitude, node.longitude
89 assert_equal node_template.user_id, node.user_id
90 assert_equal node_template.visible, node.visible
91 #assert_equal node_template.tags, node.tags
92 assert_equal node_template.timestamp.to_i, node.timestamp.to_i
94 assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 2
95 assert_equal OldNode.find(:all, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ]).length, 1
96 old_node = OldNode.find(:first, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ])
97 assert_not_nil old_node
98 assert_equal node_template.latitude, old_node.latitude
99 assert_equal node_template.longitude, old_node.longitude
100 assert_equal node_template.user_id, old_node.user_id
101 assert_equal node_template.visible, old_node.visible
102 #assert_equal node_template.tags, old_node.tags
103 assert_equal node_template.timestamp.to_i, old_node.timestamp.to_i
107 node_template = Node.find(current_nodes(:visible_node))
108 assert_not_nil node_template
110 assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 1
111 old_node_template = OldNode.find(:first, :conditions => [ "id = ?", node_template.id ])
112 assert_not_nil old_node_template
114 node_template.visible = 0
115 assert node_template.save_with_history!
117 node = Node.find(node_template.id)
119 assert_equal node_template.latitude, node.latitude
120 assert_equal node_template.longitude, node.longitude
121 assert_equal node_template.user_id, node.user_id
122 assert_equal node_template.visible, node.visible
123 #assert_equal node_template.tags, node.tags
124 assert_equal node_template.timestamp.to_i, node.timestamp.to_i
126 assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 2
127 assert_equal OldNode.find(:all, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ]).length, 1
128 old_node = OldNode.find(:first, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ])
129 assert_not_nil old_node
130 assert_equal node_template.latitude, old_node.latitude
131 assert_equal node_template.longitude, old_node.longitude
132 assert_equal node_template.user_id, old_node.user_id
133 assert_equal node_template.visible, old_node.visible
134 #assert_equal node_template.tags, old_node.tags
135 assert_equal node_template.timestamp.to_i, old_node.timestamp.to_i