diff --git a/app/contexts/test_hook_context.rb b/app/contexts/test_hook_context.rb
index d2d82a52cf5301ada55248527a6d2c11b3b3ccfb..63eda6c7d0603a6613dc9e54dfa5d0672bf1fdd7 100644
--- a/app/contexts/test_hook_context.rb
+++ b/app/contexts/test_hook_context.rb
@@ -1,8 +1,7 @@
 class TestHookContext < BaseContext
   def execute
     hook = project.hooks.find(params[:id])
-    commits = project.repository.commits(project.default_branch, nil, 3)
-    data = project.post_receive_data(commits.last.id, commits.first.id, "refs/heads/#{project.default_branch}", current_user)
+    data = GitPushService.new.sample_data(project, current_user)
     hook.execute(data)
   end
 end
diff --git a/app/services/git_push_service.rb b/app/services/git_push_service.rb
index 55cf31cd8f88dfd9ab36472c39612ed18a3c23ca..40d57c67573542659026606ad651809b94b0ffa9 100644
--- a/app/services/git_push_service.rb
+++ b/app/services/git_push_service.rb
@@ -31,6 +31,16 @@ def execute(project, user, oldrev, newrev, ref)
     create_push_event
   end
 
+  # This method provide a sample data
+  # generated with post_receive_data method
+  # for given project
+  #
+  def sample_data(project, user)
+    @project, @user = project, user
+    commits = project.repository.commits(project.default_branch, nil, 3)
+    post_receive_data(commits.last.id, commits.first.id, "refs/heads/#{project.default_branch}")
+  end
+
   protected
 
   def create_push_event