youroom_api 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/History.txt +6 -0
  2. data/Manifest.txt +19 -0
  3. data/README.txt +106 -0
  4. data/Rakefile +12 -0
  5. data/lib/object_extention.rb +52 -0
  6. data/lib/youroom_api/base.rb +17 -0
  7. data/lib/youroom_api/base_url.rb +6 -0
  8. data/lib/youroom_api/request/add_participation.rb +24 -0
  9. data/lib/youroom_api/request/add_room.rb +20 -0
  10. data/lib/youroom_api/request/add_user.rb +28 -0
  11. data/lib/youroom_api/request/destroy_entry.rb +16 -0
  12. data/lib/youroom_api/request/destroy_participation.rb +24 -0
  13. data/lib/youroom_api/request/entry.rb +4 -0
  14. data/lib/youroom_api/request/get_entry.rb +21 -0
  15. data/lib/youroom_api/request/get_room_list.rb +15 -0
  16. data/lib/youroom_api/request/get_user_list.rb +15 -0
  17. data/lib/youroom_api/request/my_group.rb +7 -0
  18. data/lib/youroom_api/request/participation.rb +15 -0
  19. data/lib/youroom_api/request/post_entry.rb +23 -0
  20. data/lib/youroom_api/request/room_timeline.rb +23 -0
  21. data/lib/youroom_api/request/show_attachment.rb +15 -0
  22. data/lib/youroom_api/request/timeline.rb +8 -0
  23. data/lib/youroom_api/request/unread_timeline.rb +12 -0
  24. data/lib/youroom_api/request/verify_credentials.rb +7 -0
  25. data/lib/youroom_api/request.rb +85 -0
  26. data/lib/youroom_api/version.rb +3 -0
  27. data/lib/youroom_api/youroom.rb +32 -0
  28. data/lib/youroom_api.rb +44 -0
  29. data/spec/setup_test_model.rb +34 -0
  30. data/spec/spec.opts +2 -0
  31. data/spec/spec_helper.rb +130 -0
  32. data/spec/youroom_api/add_participation_spec.rb +89 -0
  33. data/spec/youroom_api/add_room_spec.rb +67 -0
  34. data/spec/youroom_api/add_user_spec.rb +75 -0
  35. data/spec/youroom_api/destroy_entry_spec.rb +68 -0
  36. data/spec/youroom_api/destroy_participation_spec.rb +89 -0
  37. data/spec/youroom_api/entry_spec.rb +5 -0
  38. data/spec/youroom_api/get_entry_spec.rb +82 -0
  39. data/spec/youroom_api/get_room_list_spec.rb +55 -0
  40. data/spec/youroom_api/get_user_list_spec.rb +55 -0
  41. data/spec/youroom_api/my_group_spec.rb +44 -0
  42. data/spec/youroom_api/object_extention_spec.rb +65 -0
  43. data/spec/youroom_api/participation_spec.rb +56 -0
  44. data/spec/youroom_api/post_entry_spec.rb +75 -0
  45. data/spec/youroom_api/request_spec.rb +145 -0
  46. data/spec/youroom_api/room_timeline_spec.rb +127 -0
  47. data/spec/youroom_api/show_attachment_spec.rb +30 -0
  48. data/spec/youroom_api/timeline_spec.rb +47 -0
  49. data/spec/youroom_api/unread_timeline_spec.rb +42 -0
  50. data/spec/youroom_api/verify_credentials_spec.rb +30 -0
  51. data/spec/youroom_api/youroom_spec.rb +92 -0
  52. metadata +125 -0
@@ -0,0 +1,44 @@
1
+ require "rubygems"
2
+ require "object_extention"
3
+ require "oauth"
4
+ require 'uri'
5
+ require 'net/http'
6
+ require 'json'
7
+
8
+ module Youroom
9
+ # base
10
+ autoload :VERSION, 'youroom_api/version'
11
+ autoload :BASE_URL, 'youroom_api/base_url'
12
+ autoload :Base, 'youroom_api/base'
13
+ autoload :OAuth, 'youroom_api/youroom'
14
+ autoload :Request, 'youroom_api/request'
15
+
16
+ autoload :VerifyCredentials, 'youroom_api/request/verify_credentials'
17
+ autoload :ShowAttachment, 'youroom_api/request/show_attachment'
18
+
19
+ # relation home
20
+ autoload :HomeTimeline, 'youroom_api/request/timeline'
21
+ autoload :UnreadTimeline, 'youroom_api/request/unread_timeline'
22
+ autoload :RoomTimeline, 'youroom_api/request/room_timeline'
23
+ autoload :MyGroup, 'youroom_api/request/my_group'
24
+
25
+ # relation entry
26
+ autoload :Entry, 'youroom_api/request/entry'
27
+ autoload :GetEntry, 'youroom_api/request/get_entry'
28
+ autoload :PostEntry, 'youroom_api/request/post_entry'
29
+ autoload :DestroyEntry, 'youroom_api/request/destroy_entry'
30
+
31
+ # relation room
32
+ autoload :AddRoom, 'youroom_api/request/add_room' # enterprise only
33
+ autoload :GetRoomList, 'youroom_api/request/get_room_list' # enterprise only
34
+
35
+ # relation user
36
+ autoload :AddUser, 'youroom_api/request/add_user' # enterprise only
37
+ autoload :GetUserList, 'youroom_api/request/get_user_list' # enterprise only
38
+
39
+ # relation participation
40
+ autoload :Participation, 'youroom_api/request/participation'
41
+ autoload :AddParticipation, 'youroom_api/request/add_participation' # enterprise only
42
+ autoload :DestroyParticipation, 'youroom_api/request/destroy_participation' # enterprise only
43
+ end
44
+
@@ -0,0 +1,34 @@
1
+ class User
2
+ attr_accessor :name, :mail, :login
3
+
4
+ def initialize(name, mail, login)
5
+ @name, @mail, @login = name, mail, login
6
+ end
7
+ end
8
+
9
+ class Project
10
+ attr_accessor :room_id
11
+
12
+ def initialize(id=nil)
13
+ @room_id = id
14
+ end
15
+ end
16
+
17
+ class OAuthUser
18
+ attr_accessor :consumer_key, :consumer_secret, :access_token, :access_token_secret
19
+
20
+ def initialize(consumer_key, consumer_secret, access_token, access_token_secret)
21
+ @consumer_key = consumer_key
22
+ @consumer_secret = consumer_secret
23
+ @access_token = access_token
24
+ @access_token_secret = access_token_secret
25
+ end
26
+ end
27
+
28
+ class Entry
29
+ attr_accessor :id
30
+
31
+ def initialize(id)
32
+ @id = id
33
+ end
34
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format nested
@@ -0,0 +1,130 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ begin
5
+ require 'spec'
6
+ rescue LoadError
7
+ require 'rspec'
8
+ end
9
+ require 'ww'
10
+ require 'json'
11
+
12
+
13
+ $LOAD_PATH << File.expand_path("../lib", File.dirname(__FILE__))
14
+
15
+ require "youroom_api.rb"
16
+
17
+
18
+ load File.expand_path("setup_test_model.rb", File.dirname(__FILE__))
19
+
20
+ RSpec.configure do |config|
21
+ WW_URL = "http://localhost:8083/youroom/"
22
+
23
+ # ww config
24
+ WW::Server.handler = :webrick
25
+
26
+ WW::Server[:youroom] ||= WW::Server.build_double(8083) do
27
+ # sample spy
28
+ spy.get("/messages/:user.json") do |user|
29
+ content_type "application/json"
30
+ body = [ { :message => "hoge"} ].to_json
31
+ end
32
+ end
33
+
34
+ WW::Server.start_once(:youroom)
35
+
36
+ def access_token
37
+ @access_token ||= OAuth::AccessToken.new(consumer, "hoge", "hoge")
38
+ end
39
+
40
+ def consumer
41
+ @consumer ||= OAuth::Consumer.new("a", "b")
42
+ end
43
+
44
+ def create_room
45
+ @create_room ||= mock(Youroom::CreateRoom)
46
+ end
47
+
48
+ def create_user
49
+ @create_user ||= mock(Youroom::CreateUser)
50
+ end
51
+
52
+ def create_participation
53
+ @create_participation ||= mock(Youroom::CreateParticipation)
54
+ end
55
+
56
+ def destroy_participation
57
+ @destroy_participation ||= mock(Youroom::DestroyParticipation)
58
+ end
59
+
60
+ def entry
61
+ @entry ||= mock(Youroom::GetEntry)
62
+ end
63
+
64
+ def verify_credentials
65
+ @verify_credentials ||= mock(Youroom::VerifyCredentials)
66
+ end
67
+
68
+ def show_attachment
69
+ @show_attachment ||= mock(Youroom::ShowAttachment)
70
+ end
71
+
72
+ def participation
73
+ @participation ||= mock(Youroom::Participation)
74
+ end
75
+
76
+ def timeline
77
+ @timeline ||= mock(Youroom::HomeTimeline)
78
+ end
79
+
80
+ def unread_timeline
81
+ @timeline ||= mock(Youroom::UnreadTimeline)
82
+ end
83
+
84
+ def room_timeline
85
+ @timeline ||= mock(Youroom::RoomTimeline)
86
+ end
87
+
88
+ def create_entry_request
89
+ @create_entry_request ||= mock(Youroom::PostEntry)
90
+ end
91
+
92
+ def create_my_group_request
93
+ @create_my_group_request ||= mock(Youroom::MyGroup)
94
+ end
95
+
96
+ def destroy_entry
97
+ @destroy_entry_request ||= mock(Youroom::DestroyEntry)
98
+ end
99
+
100
+ def add_room_request
101
+ @add_room_request ||= mock(Youroom::AddRoom)
102
+ end
103
+
104
+ def room_list_request
105
+ @get_room_list ||= mock(Youroom::GetRoomList)
106
+ end
107
+
108
+ def add_participation_request
109
+ @add_participation_request ||= mock(Youroom::AddParticipation)
110
+ end
111
+
112
+ def destroy_participation_request
113
+ @destroy_participation_request ||= mock(Youroom::DestroyParticipation)
114
+ end
115
+
116
+ def add_user_request
117
+ @add_user_request ||= mock(Youroom::AddUser)
118
+ end
119
+
120
+ def get_user_list_request
121
+ @get_user_list_request ||= mock(Youroom::GetUserList)
122
+ end
123
+
124
+ def user_params
125
+ { :name => 'new user',
126
+ :email => 'pochi.black@gmail.com',
127
+ :password => 'hogehoge',
128
+ :password_confirmation => 'hogehoge' }
129
+ end
130
+ end
@@ -0,0 +1,89 @@
1
+ require File.expand_path("../spec_helper", File.dirname(__FILE__))
2
+
3
+ describe Youroom::AddParticipation do
4
+ describe "#initialize" do
5
+ describe "when can create instance" do
6
+ subject { Youroom::AddParticipation.new(access_token, 3, 4, "pochi.black@gmail.com") }
7
+ it { should be_a(Youroom::AddParticipation) }
8
+ its(:url) { should == Youroom::BASE_URL }
9
+ its(:billing_id) { should == '3' }
10
+ its(:billing_group_id) { should == '4' }
11
+ its(:email) { should == "pochi.black@gmail.com" }
12
+ its(:access_token) { should == access_token }
13
+ end
14
+
15
+ describe "when can't create instance" do
16
+ describe "case1: argument size is wrong" do
17
+ it "should raise ArgumentError" do
18
+ lambda { Youroom::AddRoom.new(access_token, 100) }.should raise_exception(ArgumentError)
19
+ end
20
+ end
21
+
22
+ describe "case2: billing_id structure is failed" do
23
+ it "should raise ArgumentError" do
24
+ lambda { Youroom::AddRoom.new(access_token, [100], 100, "pochi@gmail.com") }.should raise_exception(ArgumentError)
25
+ end
26
+ end
27
+
28
+ describe "case3: billing_group_id structure is failed" do
29
+ it "should raise ArgumentError" do
30
+ lambda { Youroom::AddRoom.new(access_token, 100, [100], "pochi@gmail.com") }.should raise_exception(ArgumentError)
31
+ end
32
+ end
33
+
34
+ describe "case4: email structure is failed" do
35
+ it "should raise ArgumentError" do
36
+ lambda { Youroom::AddRoom.new(access_token, 100, 100, 123) }.should raise_exception(ArgumentError)
37
+ end
38
+ end
39
+
40
+ end
41
+ end
42
+
43
+ describe "#path" do
44
+ describe "when url is default" do
45
+ before do
46
+ @client = Youroom::AddParticipation.new(access_token, 3, 4, "pochi@gmail.com")
47
+ end
48
+
49
+ subject { @client.path }
50
+ it { should == File.join(::Youroom::BASE_URL, 'billings', '3', 'billing_groups', '4', 'participations', 'add?format=json') }
51
+ end
52
+
53
+ describe "when url is customized" do
54
+ before do
55
+ @client = Youroom::AddParticipation.new(access_token, 3, 4, "pochi@gmail.com", WW_URL)
56
+ end
57
+
58
+ subject { @client.path }
59
+ it { should == File.join(WW_URL, 'enterprise', 'billings', '3', 'billing_groups', '4', 'participations', 'add?format=json')}
60
+ end
61
+ end
62
+
63
+ describe "#params" do
64
+ before do
65
+ @client = Youroom::AddParticipation.new(access_token, 3, 4, "pochi.black@gmail.com")
66
+ end
67
+
68
+ subject { @client.params }
69
+ it { should == {'email' => 'pochi.black@gmail.com' } }
70
+ end
71
+
72
+ describe "#post" do
73
+ before do
74
+ @client = Youroom::AddParticipation.new(access_token, 3, 4, "pochi@gmail.com", WW_URL)
75
+ WW::Server.mock(:youroom).post("/youroom/enterprise/billings/3/billing_groups/4/participations/add") do
76
+ { :status => "Created" }.to_json
77
+ end
78
+ end
79
+
80
+ after do
81
+ WW::Server.verify(:youroom)
82
+ end
83
+
84
+ subject { @client.post }
85
+ it "should get request url" do
86
+ should be_a_instance_of(Hash)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,67 @@
1
+ require File.expand_path("../spec_helper", File.dirname(__FILE__))
2
+
3
+ describe Youroom::AddRoom do
4
+ describe "#initialize" do
5
+ describe "when can create instance" do
6
+ subject { Youroom::AddRoom.new(access_token, 3, "new room") }
7
+ it { should be_a(Youroom::AddRoom) }
8
+ its(:url) { should == Youroom::BASE_URL }
9
+ its(:billing_id) { should == '3' }
10
+ its(:name) { should == "new room" }
11
+ its(:access_token) { should == access_token }
12
+ end
13
+
14
+ describe "when can't create instance" do
15
+ it "should raise ArgumentError" do
16
+ lambda { Youroom::AddRoom.new(access_token, 100) }.should raise_exception(ArgumentError)
17
+ end
18
+ end
19
+ end
20
+
21
+ describe "#path" do
22
+ describe "when url is default" do
23
+ before do
24
+ @client = Youroom::AddRoom.new(access_token, 3, "newroom")
25
+ end
26
+
27
+ subject { @client.path }
28
+ it { should == File.join(@client.url, 'billings', '3', 'billing_groups?format=json') }
29
+ end
30
+
31
+ describe "when url is customized" do
32
+ before do
33
+ @client = Youroom::AddRoom.new(access_token, 3, "newroom", WW_URL)
34
+ end
35
+
36
+ subject { @client.path }
37
+ it { should == File.join(@client.url, 'billings', '3', 'billing_groups?format=json') }
38
+ end
39
+ end
40
+
41
+ describe "#params" do
42
+ before do
43
+ @client = Youroom::AddRoom.new(access_token, 3, "newroom")
44
+ end
45
+
46
+ subject { @client.params }
47
+ it { should == {'billing_group[group_attributes][name]' => 'newroom' } }
48
+ end
49
+
50
+ describe "#post" do
51
+ before do
52
+ @client = Youroom::AddRoom.new(access_token, 3, "hogehoge", WW_URL)
53
+ WW::Server.mock(:youroom).post("/youroom/billings/3/billing_groups") do
54
+ { :status => "Created" }.to_json
55
+ end
56
+ end
57
+
58
+ after do
59
+ WW::Server.verify(:youroom)
60
+ end
61
+
62
+ subject { @client.post }
63
+ it "should call request url" do
64
+ should be_a_instance_of(Hash)
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,75 @@
1
+ require File.expand_path("../spec_helper", File.dirname(__FILE__))
2
+
3
+ describe Youroom::AddUser do
4
+ describe "#initialize" do
5
+ describe "when can create instance" do
6
+ subject { Youroom::AddUser.new(access_token, 3, user_params) }
7
+ it { should be_a(Youroom::AddUser) }
8
+ its(:url) { should == Youroom::BASE_URL }
9
+ its(:name) { should == 'new user' }
10
+ its(:email) { should == 'pochi.black@gmail.com' }
11
+ its(:password) { should == 'hogehoge' }
12
+ its(:password_confirmation) { should == 'hogehoge' }
13
+ its(:billing_id) { should == '3' }
14
+ its(:access_token) { should == access_token }
15
+ end
16
+
17
+ describe "when can't create instance" do
18
+ it "should raise ArgumentError" do
19
+ lambda { Youroom::AddUser.new(access_token, 100) }.should raise_exception(ArgumentError)
20
+ end
21
+ end
22
+ end
23
+
24
+ describe "#path" do
25
+ describe "when url is default" do
26
+ before do
27
+ @client = Youroom::AddUser.new(access_token, 3, user_params)
28
+ end
29
+
30
+ subject { @client.path }
31
+ it { should == File.join(@client.url, 'billings', '3', 'billing_users?format=json') }
32
+ end
33
+
34
+ describe "when url is customized" do
35
+ before do
36
+ @client = Youroom::AddUser.new(access_token, 3, user_params, WW_URL)
37
+ end
38
+
39
+ subject { @client.path }
40
+ it { should == File.join(@client.url, 'billings', '3', 'billing_users?format=json') }
41
+ end
42
+ end
43
+
44
+ describe "#params" do
45
+ before do
46
+ @client = Youroom::AddUser.new(access_token, 3, user_params)
47
+ end
48
+
49
+ subject { @client.params }
50
+ it do
51
+ should == { 'billing_user[name]' => 'new user',
52
+ 'billing_user[user_attributes][email]' => 'pochi.black@gmail.com',
53
+ 'billing_user[user_attributes][password]' => 'hogehoge',
54
+ 'billing_user[user_attributes][password_confirmation]' => 'hogehoge' }
55
+ end
56
+ end
57
+
58
+ describe "#post" do
59
+ before do
60
+ @client = Youroom::AddUser.new(access_token, 3, user_params, WW_URL)
61
+ WW::Server.mock(:youroom).post("/youroom/billings/3/billing_users") do
62
+ { :status => "Created" }.to_json
63
+ end
64
+ end
65
+
66
+ after do
67
+ WW::Server.verify(:youroom)
68
+ end
69
+
70
+ subject { @client.post }
71
+ it "should call request url" do
72
+ should be_a_instance_of(Hash)
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,68 @@
1
+ # encoding: utf-8
2
+ require File.expand_path("../spec_helper", File.dirname(__FILE__))
3
+
4
+ describe Youroom::DestroyEntry do
5
+ describe "#initialize" do
6
+ describe "when can create instance" do
7
+ subject { Youroom::DestroyEntry.new(access_token, "room_id", 1111) }
8
+ it { should be_a(Youroom::DestroyEntry) }
9
+ its(:url) { should == Youroom::BASE_URL }
10
+ its(:room_id) { should == "room_id" }
11
+ its(:mutter_id) { should == 1111 }
12
+ its(:access_token) { should == access_token }
13
+ end
14
+
15
+ context "room_idにFixnumを指定した場合" do
16
+ it "例外が発生しないこと" do
17
+ lambda { Youroom::DestroyEntry.new(access_token, 100, 1111) }.should_not raise_exception
18
+ end
19
+ end
20
+
21
+ describe "when can't create instance" do
22
+ describe "case1: mutter is not either String or Fixnum" do
23
+ it "should raise ArgumentError" do
24
+ lambda { Youroom::PostEntry.new(access_token, "room_id", [1111]) }.should raise_exception(ArgumentError)
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ describe "#path" do
31
+ describe "when url is original" do
32
+ before do
33
+ @client = Youroom::DestroyEntry.new(access_token, "room_id", 1111)
34
+ end
35
+
36
+ subject { @client.path }
37
+ it { should == File.join(@client.url, 'r', 'room_id', 'entries', '1111?format=json') }
38
+ end
39
+
40
+ describe "when url is not original" do
41
+ before do
42
+ @client = Youroom::DestroyEntry.new(access_token, "room_id", 1111, WW_URL)
43
+ end
44
+
45
+ subject { @client.path }
46
+ it { should == File.join(@client.url, 'r', 'room_id', 'entries', '1111?format=json') }
47
+ end
48
+ end
49
+
50
+ describe "#delete" do
51
+ before do
52
+ @client = Youroom::DestroyEntry.new(access_token, "room_id", 1111, WW_URL)
53
+ WW::Server.mock(:youroom).delete("/youroom/r/room_id/entries/1111") do
54
+ { :status => "Destroy" }.to_json
55
+ end
56
+ end
57
+
58
+ after do
59
+ WW::Server.verify(:youroom)
60
+ end
61
+
62
+ subject { @client.delete }
63
+ it "should call request url" do
64
+ should be_a_instance_of(Hash)
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,89 @@
1
+ require File.expand_path("../spec_helper", File.dirname(__FILE__))
2
+
3
+ describe Youroom::Participation do
4
+ describe "#initialize" do
5
+ describe "when can create instance" do
6
+ subject { Youroom::DestroyParticipation.new(access_token, 3, 4, "pochi.black@gmail.com") }
7
+ it { should be_a(Youroom::DestroyParticipation) }
8
+ its(:url) { should == Youroom::BASE_URL }
9
+ its(:billing_id) { should == '3' }
10
+ its(:billing_group_id) { should == '4' }
11
+ its(:email) { should == "pochi.black@gmail.com" }
12
+ its(:access_token) { should == access_token }
13
+ end
14
+
15
+ describe "when can't create instance" do
16
+ describe "case1: argument size is wrong" do
17
+ it "should raise ArgumentError" do
18
+ lambda { Youroom::AddRoom.new(access_token, 100) }.should raise_exception(ArgumentError)
19
+ end
20
+ end
21
+
22
+ describe "case2: billing_id structure is failed" do
23
+ it "should raise ArgumentError" do
24
+ lambda { Youroom::AddRoom.new(access_token, [100], 100, "pochi@gmail.com") }.should raise_exception(ArgumentError)
25
+ end
26
+ end
27
+
28
+ describe "case3: billing_group_id structure is failed" do
29
+ it "should raise ArgumentError" do
30
+ lambda { Youroom::AddRoom.new(access_token, 100, [100], "pochi@gmail.com") }.should raise_exception(ArgumentError)
31
+ end
32
+ end
33
+
34
+ describe "case4: email structure is failed" do
35
+ it "should raise ArgumentError" do
36
+ lambda { Youroom::AddRoom.new(access_token, 100, 100, 123) }.should raise_exception(ArgumentError)
37
+ end
38
+ end
39
+
40
+ end
41
+ end
42
+
43
+ describe "#path" do
44
+ describe "when url is default" do
45
+ before do
46
+ @client = Youroom::DestroyParticipation.new(access_token, 3, 4, "pochi@gmail.com")
47
+ end
48
+
49
+ subject { @client.path }
50
+ it { should == File.join(::Youroom::BASE_URL, 'billings', '3', 'billing_groups', '4', 'participations', 'remove?format=json') }
51
+ end
52
+
53
+ describe "when url is customized" do
54
+ before do
55
+ @client = Youroom::DestroyParticipation.new(access_token, 3, 4, "pochi@gmail.com", WW_URL)
56
+ end
57
+
58
+ subject { @client.path }
59
+ it { should == File.join(WW_URL, 'enterprise', 'billings', '3', 'billing_groups', '4', 'participations', 'remove?format=json') }
60
+ end
61
+ end
62
+
63
+ describe "#params" do
64
+ before do
65
+ @client = Youroom::DestroyParticipation.new(access_token, 3, 4, "pochi.black@gmail.com")
66
+ end
67
+
68
+ subject { @client.params }
69
+ it { should == {'email' => 'pochi.black@gmail.com' } }
70
+ end
71
+
72
+ describe "#post" do
73
+ before do
74
+ @client = Youroom::DestroyParticipation.new(access_token, 3, 4, "pochi@gmail.com", WW_URL)
75
+ WW::Server.mock(:youroom).post("/youroom/enterprise/billings/3/billing_groups/4/participations/remove") do
76
+ { :status => "Deleted" }.to_json
77
+ end
78
+ end
79
+
80
+ after do
81
+ WW::Server.verify(:youroom)
82
+ end
83
+
84
+ subject { @client.post }
85
+ it "should call request url" do
86
+ should be_a_instance_of(Hash)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,5 @@
1
+ require File.expand_path("../spec_helper", File.dirname(__FILE__))
2
+
3
+ describe Youroom::Entry do
4
+ # No test here because Youroom::Entry#group_host is deleted
5
+ end
@@ -0,0 +1,82 @@
1
+ # encoding: utf-8
2
+ require File.expand_path("../spec_helper", File.dirname(__FILE__))
3
+
4
+ describe Youroom::GetEntry do
5
+ describe "#initialize" do
6
+ describe "when mutter_id == nil" do
7
+ subject { Youroom::GetEntry.new(access_token, "room_id") }
8
+ it { should be_a(Youroom::GetEntry) }
9
+ its(:url) { should == Youroom::BASE_URL }
10
+ its(:room_id) { should == "room_id" }
11
+ its(:mutter_id) { should == nil }
12
+ its(:access_token) { should == access_token }
13
+ end
14
+
15
+ describe "when mutter_id != nil" do
16
+ subject { Youroom::GetEntry.new(access_token, "room_id", "mutter_id") }
17
+ it { should be_a(Youroom::GetEntry) }
18
+ its(:url) { should == Youroom::BASE_URL }
19
+ its(:room_id) { should == "room_id" }
20
+ its(:mutter_id) { should == "mutter_id" }
21
+ its(:access_token) { should == access_token }
22
+ end
23
+
24
+ describe "room_idにFixnumクラスを設定した場合" do
25
+ subject { Youroom::GetEntry.new(access_token, 1000, "mutter_id") }
26
+ it "room_idに1000が設定されること" do
27
+ subject.room_id.should == 1000
28
+ end
29
+ end
30
+
31
+ describe "when can't create instance" do
32
+ describe "case1: mutter_id is not either String or Symbol or Integer" do
33
+ it "should raise ArgumentError" do
34
+ lambda { Youroom::GetEntry.new(access_token, "room_id", [2]) }.should raise_exception(ArgumentError)
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ describe "#path" do
41
+ describe "when url is original" do
42
+ describe "when mutter_id == nil" do
43
+ before do
44
+ @client = Youroom::GetEntry.new(access_token, "room_id")
45
+ end
46
+
47
+ subject { @client.path }
48
+ it { should == File.join(@client.url, 'r', 'room_id', 'all?format=json') }
49
+ end
50
+
51
+ describe "when mutter_id != nil" do
52
+ before do
53
+ @client = Youroom::GetEntry.new(access_token, "room_id", 1111)
54
+ end
55
+
56
+ subject { @client.path }
57
+ it { should == File.join(@client.url, 'r', 'room_id', 'entries', '1111.json') }
58
+ end
59
+ end
60
+
61
+ describe "when url is not original" do
62
+ describe "when mutter_id == nil" do
63
+ before do
64
+ @client = Youroom::GetEntry.new(access_token, "room_id", nil, WW_URL)
65
+ end
66
+
67
+ subject { @client.path }
68
+ it { should == File.join(@client.url, 'r', 'room_id', 'all?format=json') }
69
+ end
70
+
71
+ describe "when mutter_id != nil" do
72
+ before do
73
+ @client = Youroom::GetEntry.new(access_token, "room_id", 1111, WW_URL)
74
+ end
75
+
76
+ subject { @client.path }
77
+ it { should == File.join(@client.url, 'r', 'room_id', 'entries', '1111.json')}
78
+ end
79
+ end
80
+ end
81
+
82
+ end