Merge branch 'p' of https://github.com/jfirebaugh/openstreetmap-website into jfirebaugh-p
[rails.git] / test / models / redaction_test.rb
1 require "test_helper"
2 require "osm"
3
4 class RedactionTest < ActiveSupport::TestCase
5   def test_cannot_redact_current
6     n = create(:node)
7     r = create(:redaction)
8     assert_equal(false, n.redacted?, "Expected node to not be redacted already.")
9     assert_raise(OSM::APICannotRedactError) do
10       n.redact!(r)
11     end
12   end
13
14   def test_cannot_redact_current_via_old
15     node = create(:node, :with_history)
16     node_v1 = node.old_nodes.find_by(:version => 1)
17     r = create(:redaction)
18     assert_equal(false, node_v1.redacted?, "Expected node to not be redacted already.")
19     assert_raise(OSM::APICannotRedactError) do
20       node_v1.redact!(r)
21     end
22   end
23
24   def test_can_redact_old
25     node = create(:node, :with_history, :version => 2)
26     node_v1 = node.old_nodes.find_by(:version => 1)
27     node_v2 = node.old_nodes.find_by(:version => 2)
28     r = create(:redaction)
29
30     assert_equal(false, node_v1.redacted?, "Expected node to not be redacted already.")
31     assert_nothing_raised do
32       node_v1.redact!(r)
33     end
34     assert_equal(true, node_v1.redacted?, "Expected node version 1 to be redacted after redact! call.")
35     assert_equal(false, node_v2.redacted?, "Expected node version 2 to not be redacted after redact! call.")
36   end
37 end