Merge changes from trunk 7673:8632.
[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           noden = current_nodes(:node_too_far_north)
12     assert_equal noden.lat, current_nodes(:node_too_far_north).latitude/SCALE
13     assert_equal false, noden.valid?
14   end
15   
16   def test_node_too_far_south
17     node = current_nodes(:node_too_far_south)
18     assert_valid node
19   end
20   
21   def test_node_too_far_west
22     node = current_nodes(:node_too_far_west)
23     assert_valid node
24   end
25   
26   def test_node_too_far_east
27     node = current_nodes(:node_too_far_east)
28     assert_valid node
29   end
30   
31   def test_totally_wrong
32     node = current_nodes(:node_totally_wrong)
33     assert_valid node
34   end
35   
36   def test_create
37     node_template = Node.new(:latitude => 12.3456,
38                              :longitude => 65.4321,
39                              :user_id => users(:normal_user),
40                              :visible => 1, 
41                              :version => 1)
42     assert node_template.save_with_history!
43
44     node = Node.find(node_template.id)
45     assert_not_nil node
46     assert_equal node_template.latitude, node.latitude
47     assert_equal node_template.longitude, node.longitude
48     assert_equal node_template.user_id, node.user_id
49     assert_equal node_template.visible, node.visible
50     assert_equal node_template.timestamp.to_i, node.timestamp.to_i
51
52     assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 1
53     old_node = OldNode.find(:first, :conditions => [ "id = ?", node_template.id ])
54     assert_not_nil old_node
55     assert_equal node_template.latitude, old_node.latitude
56     assert_equal node_template.longitude, old_node.longitude
57     assert_equal node_template.user_id, old_node.user_id
58     assert_equal node_template.visible, old_node.visible
59     assert_equal node_template.tags, old_node.tags
60     assert_equal node_template.timestamp.to_i, old_node.timestamp.to_i
61   end
62
63   def test_update
64     node_template = Node.find(current_nodes(:visible_node).id)
65     assert_not_nil node_template
66
67     assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 1
68     old_node_template = OldNode.find(:first, :conditions => [ "id = ?", node_template.id ])
69     assert_not_nil old_node_template
70
71     node_template.latitude = 12.3456
72     node_template.longitude = 65.4321
73     #node_template.tags = "updated=yes"
74     assert node_template.save_with_history!
75
76     node = Node.find(node_template.id)
77     assert_not_nil node
78     assert_equal node_template.latitude, node.latitude
79     assert_equal node_template.longitude, node.longitude
80     assert_equal node_template.user_id, node.user_id
81     assert_equal node_template.visible, node.visible
82     #assert_equal node_template.tags, node.tags
83     assert_equal node_template.timestamp.to_i, node.timestamp.to_i
84
85     assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 2
86     assert_equal OldNode.find(:all, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ]).length, 1
87     old_node = OldNode.find(:first, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ])
88     assert_not_nil old_node
89     assert_equal node_template.latitude, old_node.latitude
90     assert_equal node_template.longitude, old_node.longitude
91     assert_equal node_template.user_id, old_node.user_id
92     assert_equal node_template.visible, old_node.visible
93     #assert_equal node_template.tags, old_node.tags
94     assert_equal node_template.timestamp.to_i, old_node.timestamp.to_i
95   end
96
97   def test_delete
98     node_template = Node.find(current_nodes(:visible_node))
99     assert_not_nil node_template
100
101     assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 1
102     old_node_template = OldNode.find(:first, :conditions => [ "id = ?", node_template.id ])
103     assert_not_nil old_node_template
104
105     node_template.visible = 0
106     assert node_template.save_with_history!
107
108     node = Node.find(node_template.id)
109     assert_not_nil node
110     assert_equal node_template.latitude, node.latitude
111     assert_equal node_template.longitude, node.longitude
112     assert_equal node_template.user_id, node.user_id
113     assert_equal node_template.visible, node.visible
114     #assert_equal node_template.tags, node.tags
115     assert_equal node_template.timestamp.to_i, node.timestamp.to_i
116
117     assert_equal OldNode.find(:all, :conditions => [ "id = ?", node_template.id ]).length, 2
118     assert_equal OldNode.find(:all, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ]).length, 1
119     old_node = OldNode.find(:first, :conditions => [ "id = ? and timestamp = ?", node_template.id, node_template.timestamp ])
120     assert_not_nil old_node
121     assert_equal node_template.latitude, old_node.latitude
122     assert_equal node_template.longitude, old_node.longitude
123     assert_equal node_template.user_id, old_node.user_id
124     assert_equal node_template.visible, old_node.visible
125     #assert_equal node_template.tags, old_node.tags
126     assert_equal node_template.timestamp.to_i, old_node.timestamp.to_i
127   end
128 end