OSDN Git Service

cc7d89fc53dfb9aaeb677d9f728183500695b180
[sharp4k/CUTEn.git] / CutenServer / test / integration / access_achievement_json_test.rb
1 require 'test_helper'
2 require 'integration_test_helper'
3
4 class AccessAchievementJsonTest < ActionDispatch::IntegrationTest
5   fixtures :users, :tasks
6
7   setup do
8     @user = users :one
9     @password = 'yuujincho'
10     @user.password = @password
11     @user.save!
12   end
13
14   test 'get achievements' do
15     auth_token = obtaion_auth_token @user.email, @password
16
17     get "/achievements.json", :auth_token => auth_token
18     assert_response :success
19     as = JSON.parse @response.body
20     assert_equal as.map { |a| a['id'] }.sort, @user.achievements.map(&:id).sort
21   end
22
23   test 'add an achievement' do
24     auth_token = obtaion_auth_token @user.email, @password
25
26     task = tasks :two
27     post "/achievements.json", :auth_token => auth_token, :achievement => { :task_id => task.id, :result => '100' }
28     assert_response :created
29     j = JSON.parse @response.body
30     assert_equal j['user_id'], @user.id
31   end
32
33   test 'update an achievement' do
34     auth_token = obtaion_auth_token @user.email, @password
35
36     task = tasks :two
37     post '/achievements.json', :auth_token => auth_token, :achievement => { :task_id => task.id, :result => '1, 4, 7' }
38     assert_response :created
39     achievement = JSON.parse @response.body
40
41     put "/achievements/#{achievement['id']}.json", :auth_token => auth_token, :achievement => { :result => '2,0,10' }
42     assert_response :success
43
44     get "/achievements/#{achievement['id']}.json", :auth_token => auth_token
45     alt = JSON.parse @response.body
46     assert_equal '2,4,10', alt['result']
47   end
48
49   test 'failed to update an achievement' do
50     auth_token = obtaion_auth_token @user.email, @password
51
52     task = tasks :two
53     post '/achievements.json', :auth_token => auth_token, :achievement => { :task_id => task.id, :result => '1, 4, 7' }
54     assert_response :created
55     achievement = JSON.parse @response.body
56
57     put "/achievements/#{achievement['id']}.json", :auth_token => auth_token, :achievement => { :result => '2,0' }
58     assert_response 422
59     j = JSON.parse @response.body
60     assert j.has_key?('result')
61
62     get "/achievements/#{achievement['id']}.json", :auth_token => auth_token
63     alt = JSON.parse @response.body
64     assert_equal achievement['result'], alt['result']
65   end
66 end