qwester 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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