-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathone_way_list_tests.rb
106 lines (89 loc) · 2.74 KB
/
one_way_list_tests.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
require 'test/unit'
require 'one_way_list'
class OneWayListTests < Test::Unit::TestCase
def setup
@list = OneWayList.new
end
def teardown
end
def test_smoke
list = OneWayList.new
assert_nil(list.find("fred"))
list.add("fred")
assert_equal("fred", list.find("fred").value)
assert_nil(list.find("wilma"))
list.add("wilma")
assert_equal("fred", list.find("fred").value())
assert_equal("wilma", list.find("wilma").value())
assert_equal(["fred", "wilma"], list.values())
list = OneWayList.new
list.add("fred")
list.add("wilma")
list.add("betty")
list.add("barney")
assert_equal(["fred", "wilma", "betty", "barney"], list.values())
list.delete(list.find("wilma"))
assert_equal(["fred", "betty", "barney"], list.values())
list.delete(list.find("barney"))
assert_equal(["fred", "betty"], list.values())
list.delete(list.find("fred"))
assert_equal(["betty"], list.values())
list.delete(list.find("betty"))
assert_equal([], list.values())
end
def test_searching_for_a_item_not_in_the_list_should_return_nil
@list = OneWayList.new
assert_nil(@list.find("fred"))
end
def test_after_adding_one_item_searching_should_find_it
@list.add("fred")
assert_equal("fred", @list.find("fred").value)
end
def test_after_adding_one_item_next_should_be_nil
@list.add("fred")
item = @list.find("fred")
assert_nil(item.next)
end
def test_after_adding_one_item_searching_for_another_should_return_nil
@list.add("fred")
assert_nil(@list.find("wilma"))
end
def test_adding_multiple_items_is_cool
@list.add("fred")
@list.add("wilma")
@list.add("betty")
@list.add("barney")
assert_equal(["fred", "wilma", "betty", "barney"], @list.values())
end
def test_we_can_delete_too
@list.add("fred")
@list.add("wilma")
@list.add("betty")
@list.add("barney")
assert_equal(["fred", "wilma", "betty", "barney"], @list.values())
@list.delete(@list.find("wilma"))
assert_equal(["fred", "betty", "barney"], @list.values())
@list.delete(@list.find("barney"))
assert_equal(["fred", "betty"], @list.values())
@list.delete(@list.find("fred"))
assert_equal(["betty"], @list.values())
@list.delete(@list.find("betty"))
assert_equal([], @list.values())
end
def test_add_one_item_should_be_end
@list.add("fred")
item = @list.find("fred")
assert_equal(@list.last, fred)
end
def test_WTH
@list.add("fred")
item = @list.find("fred")
assert_nil(item.next)
@list.add("wilma")
item = @list.find("wilma")
assert_nil(item.next)
item = @list.find("fred")
nextItem = item.next
#assert_equal(nextItem.value, "wilma")
end
end