From ebaa19c162bec7dce64db25124e448d832c17384 Mon Sep 17 00:00:00 2001
From: Douglas Barbosa Alexandre <dbalexandre@gmail.com>
Date: Tue, 10 May 2016 16:23:59 -0500
Subject: [PATCH] Fix validation method for
 Gitlab::GithubImport::PullRequestFormatter

---
 lib/gitlab/github_import/branch_formatter.rb       |  4 ++++
 lib/gitlab/github_import/pull_request_formatter.rb |  5 ++---
 .../gitlab/github_import/branch_formatter_spec.rb  | 14 ++++++++++++++
 .../github_import/pull_request_formatter_spec.rb   |  4 ++--
 4 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/lib/gitlab/github_import/branch_formatter.rb b/lib/gitlab/github_import/branch_formatter.rb
index f968ec4b102..a15fc84b418 100644
--- a/lib/gitlab/github_import/branch_formatter.rb
+++ b/lib/gitlab/github_import/branch_formatter.rb
@@ -15,6 +15,10 @@ module Gitlab
         repo.present?
       end
 
+      def valid?
+        repo.present?
+      end
+
       private
 
       def short_id
diff --git a/lib/gitlab/github_import/pull_request_formatter.rb b/lib/gitlab/github_import/pull_request_formatter.rb
index 361d15d991c..574737b31c1 100644
--- a/lib/gitlab/github_import/pull_request_formatter.rb
+++ b/lib/gitlab/github_import/pull_request_formatter.rb
@@ -29,7 +29,7 @@ module Gitlab
       end
 
       def valid?
-        !cross_project?
+        source_branch.valid? && target_branch.valid? && !cross_project?
       end
 
       def source_branch
@@ -65,8 +65,7 @@ module Gitlab
       end
 
       def cross_project?
-        source_branch_repo.present? && target_branch_repo.present? &&
-          source_branch_repo.id != target_branch_repo.id
+        source_branch_repo.id != target_branch_repo.id
       end
 
       def description
diff --git a/spec/lib/gitlab/github_import/branch_formatter_spec.rb b/spec/lib/gitlab/github_import/branch_formatter_spec.rb
index 58bfdd6c72b..3cb634ba010 100644
--- a/spec/lib/gitlab/github_import/branch_formatter_spec.rb
+++ b/spec/lib/gitlab/github_import/branch_formatter_spec.rb
@@ -54,4 +54,18 @@ describe Gitlab::GithubImport::BranchFormatter, lib: true do
       expect(branch.sha).to eq '2e5d3239642f9161dcbbc4b70a211a68e5e45e2b'
     end
   end
+
+  describe '#valid?' do
+    it 'returns true when repository exists' do
+      branch = described_class.new(project, double(raw))
+
+      expect(branch.valid?).to eq true
+    end
+
+    it 'returns false when repository does not exist' do
+      branch = described_class.new(project, double(raw.merge(repo: nil)))
+
+      expect(branch.valid?).to eq false
+    end
+  end
 end
diff --git a/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb b/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
index 5fed98e3926..120f59e6e71 100644
--- a/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
+++ b/spec/lib/gitlab/github_import/pull_request_formatter_spec.rb
@@ -173,7 +173,7 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
     end
 
     context 'when source repo is a fork' do
-      let(:source_repo) { double(id: 2, fork: true) }
+      let(:source_repo) { double(id: 2) }
       let(:raw_data) { double(base_data) }
 
       it 'returns false' do
@@ -182,7 +182,7 @@ describe Gitlab::GithubImport::PullRequestFormatter, lib: true do
     end
 
     context 'when target repo is a fork' do
-      let(:target_repo) { double(id: 2, fork: true) }
+      let(:target_repo) { double(id: 2) }
       let(:raw_data) { double(base_data) }
 
       it 'returns false' do
-- 
GitLab