Skip to content

Commit

Permalink
Merged the Object Daddy exemplars from trunk. r3337, r3340, r3342
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3359 e93f8b46-1217-0410-a6f0-8f06a7374b81
  • Loading branch information
edavis10 committed Feb 2, 2010
1 parent 27fa40d commit 76d9d01
Show file tree
Hide file tree
Showing 25 changed files with 310 additions and 1 deletion.
21 changes: 21 additions & 0 deletions test/exemplars/attachment_exemplar.rb
@@ -0,0 +1,21 @@
class Attachment < ActiveRecord::Base
generator_for :container, :method => :generate_project
generator_for :file, :method => :generate_file
generator_for :author, :method => :generate_author

def self.generate_project
Project.generate!
end

def self.generate_author
User.generate_with_protected!
end

def self.generate_file
@file = 'a_file.png'
@file.stubs(:original_filename).returns('a_file.png')
@file.stubs(:content_type).returns('image/png')
@file.stubs(:read).returns(false)
@file
end
end
9 changes: 9 additions & 0 deletions test/exemplars/auth_source_exemplar.rb
@@ -0,0 +1,9 @@
class AuthSource < ActiveRecord::Base
generator_for :name, :method => :next_name

def self.next_name
@last_name ||= 'Auth0'
@last_name.succ!
@last_name
end
end
21 changes: 21 additions & 0 deletions test/exemplars/board_exemplar.rb
@@ -0,0 +1,21 @@
class Board < ActiveRecord::Base
generator_for :name, :method => :next_name
generator_for :description, :method => :next_description
generator_for :project, :method => :generate_project

def self.next_name
@last_name ||= 'A Forum'
@last_name.succ!
@last_name
end

def self.next_description
@last_description ||= 'Some description here'
@last_description.succ!
@last_description
end

def self.generate_project
Project.generate!
end
end
15 changes: 15 additions & 0 deletions test/exemplars/change_exemplar.rb
@@ -0,0 +1,15 @@
class Change < ActiveRecord::Base
generator_for :action => 'A'
generator_for :path, :method => :next_path
generator_for :changeset, :method => :generate_changeset

def self.next_path
@last_path ||= 'test/dir/aaa0001'
@last_path.succ!
@last_path
end

def self.generate_changeset
Changeset.generate!
end
end
15 changes: 15 additions & 0 deletions test/exemplars/changeset_exemplar.rb
@@ -0,0 +1,15 @@
class Changeset < ActiveRecord::Base
generator_for :revision, :method => :next_revision
generator_for :committed_on => Date.today
generator_for :repository, :method => :generate_repository

def self.next_revision
@last_revision ||= '1'
@last_revision.succ!
@last_revision
end

def self.generate_repository
Repository::Subversion.generate!
end
end
13 changes: 13 additions & 0 deletions test/exemplars/comment_exemplar.rb
@@ -0,0 +1,13 @@
class Comment < ActiveRecord::Base
generator_for :commented, :method => :generate_news
generator_for :author, :method => :generate_author
generator_for :comments => 'What great news this is.'

def self.generate_news
News.generate!
end

def self.generate_author
User.generate_with_protected!
end
end
5 changes: 5 additions & 0 deletions test/exemplars/custom_value_exemplar.rb
@@ -1,2 +1,7 @@
class CustomValue < ActiveRecord::Base
generator_for :custom_field, :method => :generate_custom_field

def self.generate_custom_field
CustomField.generate!
end
end
9 changes: 9 additions & 0 deletions test/exemplars/document_exemplar.rb
@@ -0,0 +1,9 @@
class Document < ActiveRecord::Base
generator_for :title, :method => :next_title

def self.next_title
@last_title ||= 'Document001'
@last_title.succ!
@last_title
end
end
10 changes: 10 additions & 0 deletions test/exemplars/enabled_module_exemplar.rb
@@ -0,0 +1,10 @@
class EnabledModule < ActiveRecord::Base
generator_for :name, :method => :next_name

def self.next_name
@last_name ||= 'module_001'
@last_name.succ!
@last_name
end

end
10 changes: 10 additions & 0 deletions test/exemplars/group_exemplar.rb
@@ -0,0 +1,10 @@
class Group < Principal
generator_for :lastname, :method => :next_lastname

def self.next_lastname
@last_lastname ||= 'Group'
@last_lastname.succ!
@last_lastname
end

end
9 changes: 9 additions & 0 deletions test/exemplars/issue_category_exemplar.rb
@@ -0,0 +1,9 @@
class IssueCategory < ActiveRecord::Base
generator_for :name, :method => :next_name

def self.next_name
@last_name ||= 'Category 0001'
@last_name.succ!
@last_name
end
end
13 changes: 13 additions & 0 deletions test/exemplars/journal_exemplar.rb
@@ -0,0 +1,13 @@
class Journal < ActiveRecord::Base
generator_for :journalized, :method => :generate_issue
generator_for :user, :method => :generate_user

def self.generate_issue
project = Project.generate!
Issue.generate_for_project!(project)
end

def self.generate_user
User.generate_with_protected!
end
end
10 changes: 10 additions & 0 deletions test/exemplars/member_exemplar.rb
@@ -1,2 +1,12 @@
class Member < ActiveRecord::Base
generator_for :roles, :method => :generate_roles
generator_for :principal, :method => :generate_user

def self.generate_roles
[Role.generate!]
end

def self.generate_user
User.generate_with_protected!
end
end
12 changes: 12 additions & 0 deletions test/exemplars/member_role_exemplar.rb
@@ -0,0 +1,12 @@
class MemberRole < ActiveRecord::Base
generator_for :member, :method => :generate_member
generator_for :role, :method => :generate_role

def self.generate_role
Role.generate!
end

def self.generate_member
Member.generate!
end
end
21 changes: 21 additions & 0 deletions test/exemplars/message_exemplar.rb
@@ -0,0 +1,21 @@
class Message < ActiveRecord::Base
generator_for :subject, :method => :next_subject
generator_for :content, :method => :next_content
generator_for :board, :method => :generate_board

def self.next_subject
@last_subject ||= 'A Message'
@last_subject.succ!
@last_subject
end

def self.next_content
@last_content ||= 'Some content here'
@last_content.succ!
@last_content
end

def self.generate_board
Board.generate!
end
end
16 changes: 16 additions & 0 deletions test/exemplars/news_exemplar.rb
@@ -0,0 +1,16 @@
class News < ActiveRecord::Base
generator_for :title, :method => :next_title
generator_for :description, :method => :next_description

def self.next_title
@last_title ||= 'A New Item'
@last_title.succ!
@last_title
end

def self.next_description
@last_description ||= 'Some content here'
@last_description.succ!
@last_description
end
end
11 changes: 11 additions & 0 deletions test/exemplars/repository_exemplar.rb
@@ -0,0 +1,11 @@
class Repository < ActiveRecord::Base
generator_for :type => 'Subversion'
generator_for :url, :method => :next_url

def self.next_url
@last_url ||= 'file:///test/svn'
@last_url.succ!
@last_url
end

end
11 changes: 11 additions & 0 deletions test/exemplars/subversion_repository_exemplar.rb
@@ -0,0 +1,11 @@
class Repository::Subversion < Repository
generator_for :type, :method => 'Subversion'
generator_for :url, :method => :next_url

def self.next_url
@last_url ||= 'file:///test/svn'
@last_url.succ!
@last_url
end

end
5 changes: 5 additions & 0 deletions test/exemplars/time_entry_exemplar.rb
@@ -1,5 +1,10 @@
class TimeEntry < ActiveRecord::Base
generator_for(:spent_on) { Date.today }
generator_for(:hours) { (rand * 10).round(2) } # 0.01 to 9.99
generator_for :user, :method => :generate_user

def self.generate_user
User.generate_with_protected!
end

end
7 changes: 7 additions & 0 deletions test/exemplars/watcher_exemplar.rb
@@ -0,0 +1,7 @@
class Watcher < ActiveRecord::Base
generator_for :user, :method => :generate_user

def self.generate_user
User.generate_with_protected!
end
end
8 changes: 8 additions & 0 deletions test/exemplars/wiki_content_exemplar.rb
@@ -0,0 +1,8 @@
class WikiContent < ActiveRecord::Base
generator_for :text => 'Some content'
generator_for :page, :method => :generate_page

def self.generate_page
WikiPage.generate!
end
end
8 changes: 8 additions & 0 deletions test/exemplars/wiki_exemplar.rb
@@ -0,0 +1,8 @@
class Wiki < ActiveRecord::Base
generator_for :start_page => 'Start'
generator_for :project, :method => :generate_project

def self.generate_project
Project.generate!
end
end
14 changes: 14 additions & 0 deletions test/exemplars/wiki_page_exemplar.rb
@@ -0,0 +1,14 @@
class WikiPage < ActiveRecord::Base
generator_for :title, :method => :next_title
generator_for :wiki, :method => :generate_wiki

def self.next_title
@last_title ||= 'AWikiPage'
@last_title.succ!
@last_title
end

def self.generate_wiki
Wiki.generate!
end
end
21 changes: 21 additions & 0 deletions test/exemplars/wiki_redirect_exemplar.rb
@@ -0,0 +1,21 @@
class WikiRedirect < ActiveRecord::Base
generator_for :title, :method => :next_title
generator_for :redirects_to, :method => :next_redirects_to
generator_for :wiki, :method => :generate_wiki

def self.next_title
@last_title ||= 'AWikiPage'
@last_title.succ!
@last_title
end

def self.next_redirects_to
@last_redirect ||= '/a/path/000001'
@last_redirect.succ!
@last_redirect
end

def self.generate_wiki
Wiki.generate!
end
end
17 changes: 16 additions & 1 deletion test/object_daddy_helpers.rb
@@ -1,14 +1,29 @@
module ObjectDaddyHelpers
# TODO: The gem or official version of ObjectDaddy doesn't set
# protected attributes so they need to be wrapped.
def User.generate_with_protected(attributes={})
user = User.spawn_with_protected(attributes)
user.save
user
end

# TODO: The gem or official version of ObjectDaddy doesn't set
# protected attributes so they need to be wrapped.
def User.generate_with_protected!(attributes={})
user = User.spawn_with_protected(attributes)
user.save!
user
end

# TODO: The gem or official version of ObjectDaddy doesn't set
# protected attributes so they need to be wrapped.
def User.spawn_with_protected(attributes={})
user = User.spawn(attributes) do |user|
user.login = User.next_login
attributes.each do |attr,v|
user.send("#{attr}=", v)
end
end
user.save!
user
end

Expand Down

0 comments on commit 76d9d01

Please sign in to comment.