]> git.openstreetmap.org Git - rails.git/blob - test/unit/node_test.rb
460c13a025318252748422aee76540671878798b
[rails.git] / test / unit / node_test.rb
1 require File.dirname(__FILE__) + '/../test_helper'
2
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
9     
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?
15   end
16   
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?
22   end
23   
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?
29   end
30   
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?
36   end
37   
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?
43   end
44   
45   def test_create
46     node_template = Node.new(:latitude => 12.3456,
47                              :longitude => 65.4321,
48                              :user_id => users(:normal_user),
49                              :visible => 1, 
50                              :version => 1)
51     assert node_template.save_with_history!
52
53     node = Node.find(node_template.id)
54     assert_not_nil node
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
60
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
70   end
71
72   def test_update
73     node_template = Node.find(current_nodes(:visible_node).id)
74     assert_not_nil node_template
75
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
79
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!
84
85     node = Node.find(node_template.id)
86     assert_not_nil node
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
93
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
104   end
105
106   def test_delete
107     node_template = Node.find(current_nodes(:visible_node))
108     assert_not_nil node_template
109
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
113
114     node_template.visible = 0
115     assert node_template.save_with_history!
116
117     node = Node.find(node_template.id)
118     assert_not_nil node
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
125
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
136   end
137 end