OSDN Git Service

Merge branch 'gist' of https://github.com/Andrew8xx8/gitlabhq into Andrew8xx8-gist
[wvm/gitlab.git] / spec / factories.rb
index a26a77d..b596f80 100644 (file)
@@ -9,10 +9,10 @@ FactoryGirl.define do
 
   sequence(:url) { Faker::Internet.uri('http') }
 
-  factory :user, aliases: [:author, :assignee, :owner] do
+  factory :user, aliases: [:author, :assignee, :owner, :creator] do
     email { Faker::Internet.email }
     name
-    username { Faker::Internet.user_name }
+    sequence(:username) { |n| "#{Faker::Internet.user_name}#{n}" }
     password "123456"
     password_confirmation { password }
 
@@ -26,7 +26,16 @@ FactoryGirl.define do
   factory :project do
     sequence(:name) { |n| "project#{n}" }
     path { name.downcase.gsub(/\s/, '_') }
-    owner
+    creator
+  end
+
+  factory :redmine_project, parent: :project do
+    issues_tracker { "redmine" }
+    issues_tracker_id { "project_name_in_redmine" }
+  end
+
+  factory :project_with_code, parent: :project do
+    path { 'gitlabhq' }
   end
 
   factory :group do
@@ -37,7 +46,7 @@ FactoryGirl.define do
   end
 
   factory :namespace do
-    sequence(:name) { |n| "group#{n}" }
+    sequence(:name) { |n| "namespace#{n}" }
     path { name.downcase.gsub(/\s/, '_') }
     owner
   end
@@ -45,6 +54,7 @@ FactoryGirl.define do
   factory :users_project do
     user
     project
+    project_access { UsersProject::MASTER }
   end
 
   factory :issue do
@@ -53,50 +63,90 @@ FactoryGirl.define do
     project
 
     trait :closed do
-      closed true
+      state :closed
+    end
+
+    trait :reopened do
+      state :reopened
     end
 
     factory :closed_issue, traits: [:closed]
+    factory :reopened_issue, traits: [:reopened]
   end
 
   factory :merge_request do
     title
     author
-    project
+    project factory: :project_with_code
     source_branch "master"
     target_branch "stable"
 
-    trait :closed do
-      closed true
-    end
-
     # pick 3 commits "at random" (from bcf03b5d~3 to bcf03b5d)
     trait :with_diffs do
-      target_branch "bcf03b5d~3"
-      source_branch "bcf03b5d"
+      target_branch "master" # pretend bcf03b5d~3
+      source_branch "stable" # pretend bcf03b5d
       st_commits do
-        [Commit.new(project.repo.commit('bcf03b5d')),
-         Commit.new(project.repo.commit('bcf03b5d~1')),
-         Commit.new(project.repo.commit('bcf03b5d~2'))]
+        [
+          project.repository.commit('bcf03b5d').to_hash,
+          project.repository.commit('bcf03b5d~1').to_hash,
+          project.repository.commit('bcf03b5d~2').to_hash
+        ]
       end
       st_diffs do
         project.repo.diff("bcf03b5d~3", "bcf03b5d")
       end
     end
 
+    trait :closed do
+      state :closed
+    end
+
+    trait :reopened do
+      state :reopened
+    end
+
     factory :closed_merge_request, traits: [:closed]
+    factory :reopened_merge_request, traits: [:reopened]
     factory :merge_request_with_diffs, traits: [:with_diffs]
   end
 
   factory :note do
     project
     note "Note"
+    author
+
+    factory :note_on_commit, traits: [:on_commit]
+    factory :note_on_commit_diff, traits: [:on_commit, :on_diff]
+    factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note]
+    factory :note_on_merge_request, traits: [:on_merge_request]
+    factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff]
+
+    trait :on_commit do
+      project factory: :project_with_code
+      commit_id     "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a"
+      noteable_type "Commit"
+    end
+
+    trait :on_diff do
+      line_code "0_184_184"
+    end
+
+    trait :on_merge_request do
+      project factory: :project_with_code
+      noteable_id   1
+      noteable_type "MergeRequest"
+    end
+
+    trait :on_issue do
+      noteable_id   1
+      noteable_type "Issue"
+    end
   end
 
   factory :event do
     factory :closed_issue_event do
       project
-      action Event::Closed
+      action { Event::CLOSED }
       target factory: :closed_issue
       author factory: :user
     end
@@ -108,8 +158,7 @@ FactoryGirl.define do
       "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
     end
 
-    factory :deploy_key do
-      project
+    factory :deploy_key, class: 'DeployKey' do
     end
 
     factory :personal_key do
@@ -121,11 +170,23 @@ FactoryGirl.define do
         "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa ++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
       end
     end
+
+    factory :invalid_key do
+      key do
+        "ssh-rsa this_is_invalid_key=="
+      end
+    end
   end
 
   factory :milestone do
     title
     project
+
+    trait :closed do
+      state :closed
+    end
+
+    factory :closed_milestone, traits: [:closed]
   end
 
   factory :system_hook do
@@ -136,14 +197,22 @@ FactoryGirl.define do
     url
   end
 
-  factory :wiki do
+  factory :project_snippet do
+    project
+    author
     title
     content
-    user
+    file_name
+  end
+
+  factory :personal_snippet do
+    author
+    title
+    content
+    file_name
   end
 
   factory :snippet do
-    project
     author
     title
     content
@@ -166,4 +235,9 @@ FactoryGirl.define do
     url
     service
   end
+
+  factory :deploy_keys_project do
+    deploy_key
+    project
+  end
 end