mover 0.2.2 → 0.3.0

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.
data/spec/mover_spec.rb DELETED
@@ -1,107 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Mover do
4
-
5
- describe :copy_to do
6
-
7
- before(:each) do
8
- [ 1, 0, 1 ].each { |v| $db.migrate(v) }
9
- @articles = create_records(Article)
10
- @comments = create_records(Comment)
11
- @articles[0].copy_to(ArticleArchive)
12
- end
13
-
14
- describe 'should copy both articles and their associations' do
15
- it "should copy articles" do
16
- Article.copy_to(ArticleArchive, [ 'id = ? OR id = ? OR id = ?', 1, 2, 3 ])
17
- Article.count.should == 5
18
- Comment.count.should == 5
19
- ArticleArchive.count.should == 3
20
- CommentArchive.count.should == 3
21
- end
22
- end
23
-
24
- describe 'should overwrite first copy if copied twice' do
25
- it "should copy articles" do
26
- Article.find(1).update_attributes(:title => 'foobar edited')
27
- Article.copy_to(ArticleArchive, [ 'id = ? OR id = ? OR id = ?', 1, 2, 3 ])
28
- ArticleArchive.find(1).title.should == 'foobar edited'
29
- Article.count.should == 5
30
- Comment.count.should == 5
31
- ArticleArchive.count.should == 3
32
- CommentArchive.count.should == 3
33
- end
34
- end
35
- end
36
-
37
- describe :move_to do
38
-
39
- before(:each) do
40
- [ 1, 0, 1 ].each { |v| $db.migrate(v) }
41
- @articles = create_records(Article)
42
- @comments = create_records(Comment)
43
- @articles[0].move_to(ArticleArchive)
44
- Article.move_to(ArticleArchive, [ 'id = ?', 2 ])
45
- end
46
-
47
- describe 'move records' do
48
-
49
- it "should move both articles and their associations" do
50
- Article.count.should == 3
51
- Comment.count.should == 3
52
- ArticleArchive.count.should == 2
53
- CommentArchive.count.should == 2
54
- Article.find_by_id(1).nil?.should == true
55
- Comment.find_by_id(2).nil?.should == true
56
- ArticleArchive.find_by_id(1).nil?.should == false
57
- CommentArchive.find_by_id(2).nil?.should == false
58
- comments = ArticleArchive.find_by_id(1).comments
59
- comments.length.should == 1
60
- comments.first.id.should == 1
61
- comments = ArticleArchive.find_by_id(2).comments
62
- comments.length.should == 1
63
- comments.first.id.should == 2
64
- end
65
-
66
- it "should assign moved_at" do
67
- ArticleArchive.find_by_id(1).moved_at.utc.to_s.should == Time.now.utc.to_s
68
- end
69
- end
70
-
71
- describe 'move records back' do
72
-
73
- before(:each) do
74
- ArticleArchive.find(1).move_to(Article)
75
- ArticleArchive.move_to(Article, [ 'id = ?', 2 ])
76
- end
77
-
78
- it "should move both articles and their associations" do
79
- Article.count.should == 5
80
- Comment.count.should == 5
81
- ArticleArchive.count.should == 0
82
- CommentArchive.count.should == 0
83
- Article.find_by_id(1).nil?.should == false
84
- Comment.find_by_id(2).nil?.should == false
85
- ArticleArchive.find_by_id(1).nil?.should == true
86
- CommentArchive.find_by_id(2).nil?.should == true
87
- comments = Article.find_by_id(1).comments
88
- comments.length.should == 1
89
- comments.first.id.should == 1
90
- comments = Article.find_by_id(2).comments
91
- comments.length.should == 1
92
- comments.first.id.should == 2
93
- end
94
- end
95
- end
96
-
97
- describe :reserve_id do
98
- it "should return an id" do
99
- Article.reserve_id.class.should == Fixnum
100
- end
101
-
102
- it "should delete the record" do
103
- id = Article.reserve_id
104
- Article.find_by_id(id).should == nil
105
- end
106
- end
107
- end
data/spec/spec_helper.rb DELETED
@@ -1,43 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../require")
2
- Require.spec_helper!
3
-
4
- Spec::Runner.configure do |config|
5
- end
6
-
7
- $db, $log = ActiveWrapper.setup(
8
- :base => File.dirname(__FILE__),
9
- :env => 'test'
10
- )
11
- $db.establish_connection
12
-
13
- def record_match?(original, copy)
14
- (original.class.column_names & copy.class.column_names).each do |col|
15
- copy.send(col).should == original.send(col)
16
- end
17
- end
18
-
19
- def columns(table)
20
- connection.columns(table).collect(&:name)
21
- end
22
-
23
- def connection
24
- ActiveRecord::Base.connection
25
- end
26
-
27
- def create_records(klass, values={})
28
- klass.delete_all
29
- (1..5).collect do |x|
30
- klass.column_names.each do |column|
31
- next if column == 'id'
32
- if column == 'article_id'
33
- values[:article_id] = x
34
- else
35
- values[column.intern] = "#{klass} #{x} #{column}"
36
- end
37
- end
38
- record = klass.new
39
- record.id = x
40
- record.update_attributes(values)
41
- record
42
- end
43
- end