qwester 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,6 +5,7 @@ module Qwester
5
5
 
6
6
  def setup
7
7
  @answer_store = AnswerStore.find(1)
8
+ @answer_store.update_attribute(:updated_at, 2.days.ago)
8
9
  @answer = Answer.find(1)
9
10
  @other_answer = Answer.find(2)
10
11
  @questionnaire = Questionnaire.find(1)
@@ -33,17 +34,107 @@ module Qwester
33
34
  assert_match /^\w*$/, answer_store.session_id
34
35
  assert_equal 15, answer_store.session_id.length
35
36
  end
36
-
37
- def test_cope_index_sum_with_no_answers
38
- assert_equal(0, @answer_store.cope_index_sum)
37
+
38
+ def test_preserve
39
+ assert_difference 'AnswerStore.count', 1 do
40
+ @preserved = @answer_store.preserve
41
+ end
42
+ assert(@preserved.preserved?)
43
+ assert(!@answer_store.preserved?)
39
44
  end
40
-
41
- def test_cope_index_sum
45
+
46
+ def test_preserved_is_last_created
47
+ test_preserve
48
+ assert_equal(AnswerStore.last, @preserved)
49
+ end
50
+
51
+ def test_preserved_answer_store_has_new_session_id
52
+ test_preserve
53
+ assert_not_equal(@answer_store.session_id, @preserved.session_id)
54
+ end
55
+
56
+ def test_preserved_has_same_objects_as_original
57
+ test_answer_store_accepts_objects
58
+ test_preserve
59
+ assert_equal(@answer_store.answers, @preserved.answers)
60
+ assert_equal(@answer_store.questionnaires, @preserved.questionnaires)
61
+ end
62
+
63
+ def test_changes_to_original_do_not_affect_preserved
64
+ test_preserve
65
+ assert_equal([], @preserved.answers)
66
+ assert_equal([], @preserved.questionnaires)
42
67
  test_answer_store_accepts_objects
43
- assert_equal(0, @answer_store.cope_index_sum)
44
- number = 6
45
- @answer.update_attribute(:cope_index, number)
46
- assert_equal(number, @answer_store.cope_index_sum)
68
+ @preserved.reload
69
+ assert_equal([], @preserved.answers)
70
+ assert_equal([], @preserved.questionnaires)
47
71
  end
72
+
73
+ def test_destroy_unpreserved
74
+ assert_not_equal(0, AnswerStore.count)
75
+ AnswerStore.destroy_unpreserved
76
+ assert_equal(0, AnswerStore.count)
77
+ end
78
+
79
+ def test_destroy_unpreserved_does_not_remove_preserved
80
+ count = AnswerStore.count
81
+ test_preserve
82
+ assert_difference 'AnswerStore.count', - count do
83
+ AnswerStore.destroy_unpreserved
84
+ end
85
+ assert_equal(@preserved, AnswerStore.first)
86
+ end
87
+
88
+ def test_destroy_unpreserved_does_not_destroy_answers
89
+ test_answer_store_accepts_objects
90
+ assert_no_difference 'Answer.count' do
91
+ AnswerStore.destroy_unpreserved
92
+ end
93
+ end
94
+
95
+ def test_destroy_unpreserved_does_not_destroy_questionnaires
96
+ test_answer_store_accepts_objects
97
+ assert_no_difference 'Questionnaire.count' do
98
+ AnswerStore.destroy_unpreserved
99
+ end
100
+ end
101
+
102
+ def test_destroy_unpreserved_removes_entries_from_answers_join_table
103
+ test_answer_store_accepts_objects
104
+ assert_on_destroy_unpreserved_join_entries_removed_for 'answers'
105
+ end
106
+
107
+ def test_destroy_unpreserved_removes_entries_from_questionnaires_join_table
108
+ test_answer_store_accepts_objects
109
+ assert_on_destroy_unpreserved_join_entries_removed_for 'questionnaires'
110
+ end
111
+
112
+ def test_destroy_unpreserved_does_not_remove_recent_answer_stores
113
+ answer_store = AnswerStore.create
114
+ AnswerStore.destroy_unpreserved
115
+ assert_equal([answer_store], AnswerStore.all)
116
+ end
117
+
118
+ def test_restore_preserved
119
+ test_preserve
120
+ assert_difference 'AnswerStore.count' do
121
+ @restored = @preserved.restore
122
+ end
123
+ assert_equal(false, @restored.preserved?)
124
+ assert_not_equal(@preserved.session_id, @restored.session_id)
125
+ assert_equal(@preserved.answers, @restored.answers)
126
+ assert_equal(@preserved.questionnaires, @restored.questionnaires)
127
+ end
128
+
129
+ private
130
+ def assert_on_destroy_unpreserved_join_entries_removed_for(table)
131
+ join_table = @answer_store.association(table).join_table.name
132
+ sql = "SELECT count(*) FROM #{join_table}"
133
+ original_joins = AnswerStore.connection.select_value(sql)
134
+ AnswerStore.destroy_unpreserved
135
+ joins = AnswerStore.connection.select_value(sql)
136
+ assert_equal(original_joins - 1, joins)
137
+ end
138
+
48
139
  end
49
140
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qwester
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-28 00:00:00.000000000 Z
12
+ date: 2013-03-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -138,6 +138,7 @@ files:
138
138
  - db/migrate/20121008152106_create_answers.rb
139
139
  - db/migrate/20121122141628_remove_questionnaire_from_answer.rb
140
140
  - db/migrate/20121126152146_add_rule_to_rule_sets.rb
141
+ - db/migrate/20130306114331_add_preserved_to_answer_stores.rb
141
142
  - db/migrate/20121203150555_add_multi_answer_to_questions.rb
142
143
  - db/migrate/20121115114408_add_ref_to_questions.rb
143
144
  - db/migrate/20121120092108_add_ids_to_questionnaires_questions.rb
@@ -181,6 +182,7 @@ files:
181
182
  - test/dummy/db/migrate/20130111112933_add_ref_to_questions.qwester.rb
182
183
  - test/dummy/db/migrate/20130111112939_add_link_text_to_rule_sets.qwester.rb
183
184
  - test/dummy/db/migrate/20130111112927_create_questionnaires.qwester.rb
185
+ - test/dummy/db/migrate/20130306115340_add_preserved_to_answer_stores.qwester.rb
184
186
  - test/dummy/db/migrate/20130111112930_change_answers_value_to_string.qwester.rb
185
187
  - test/dummy/db/migrate/20130111112931_add_button_image_to_questionnaires.qwester.rb
186
188
  - test/dummy/db/migrate/20130111112929_add_questionnaire_id_to_answers.qwester.rb
@@ -443,6 +445,7 @@ test_files:
443
445
  - test/dummy/db/migrate/20130111112933_add_ref_to_questions.qwester.rb
444
446
  - test/dummy/db/migrate/20130111112939_add_link_text_to_rule_sets.qwester.rb
445
447
  - test/dummy/db/migrate/20130111112927_create_questionnaires.qwester.rb
448
+ - test/dummy/db/migrate/20130306115340_add_preserved_to_answer_stores.qwester.rb
446
449
  - test/dummy/db/migrate/20130111112930_change_answers_value_to_string.qwester.rb
447
450
  - test/dummy/db/migrate/20130111112931_add_button_image_to_questionnaires.qwester.rb
448
451
  - test/dummy/db/migrate/20130111112929_add_questionnaire_id_to_answers.qwester.rb