eventify 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/.travis.yml +11 -0
- data/Gemfile +16 -0
- data/Guardfile +12 -0
- data/LICENSE +22 -0
- data/README.md +67 -0
- data/Rakefile +10 -0
- data/eventify.gemspec +31 -0
- data/lib/eventify.rb +38 -0
- data/lib/eventify/configuration.rb +31 -0
- data/lib/eventify/database.rb +56 -0
- data/lib/eventify/mail.rb +37 -0
- data/lib/eventify/provider/base.rb +51 -0
- data/lib/eventify/provider/fbi.rb +17 -0
- data/lib/eventify/provider/piletilevi.rb +31 -0
- data/lib/eventify/provider/ticketpro.rb +15 -0
- data/lib/eventify/scheduler.rb +31 -0
- data/lib/eventify/version.rb +3 -0
- data/spec/eventify/configuration_spec.rb +46 -0
- data/spec/eventify/database_spec.rb +142 -0
- data/spec/eventify/mail_spec.rb +33 -0
- data/spec/eventify/provider/base_spec.rb +145 -0
- data/spec/eventify/provider/fbi_spec.rb +25 -0
- data/spec/eventify/provider/piletilevi_spec.rb +36 -0
- data/spec/eventify/provider/ticketpro_spec.rb +25 -0
- data/spec/eventify/scheduler_spec.rb +14 -0
- data/spec/eventify_spec.rb +150 -0
- data/spec/spec_helper.rb +25 -0
- data/spec/support/fbi.html +802 -0
- data/spec/support/piletilevi-empty.xml +10 -0
- data/spec/support/piletilevi-music.xml +51 -0
- data/spec/support/piletilevi-news.xml +17 -0
- data/spec/support/ticketpro.xml +38 -0
- metadata +219 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
require "simple-rss"
|
2
|
+
require "open-uri"
|
3
|
+
|
4
|
+
module Eventify::Provider
|
5
|
+
class Ticketpro < Base
|
6
|
+
URL = "http://www.ticketpro.ee/jnp/rss/index.xml"
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def fetch
|
10
|
+
rss = SimpleRSS.parse open(URL)
|
11
|
+
rss.entries.map { |entry| new id: entry.guid, title: entry.title, link: entry.link, date: entry.pubDate }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "logger"
|
2
|
+
require File.expand_path("../eventify", __dir__)
|
3
|
+
|
4
|
+
class Eventify::Scheduler
|
5
|
+
def call(_)
|
6
|
+
L("Fetch events.")
|
7
|
+
eventify = Eventify.new
|
8
|
+
eventify.process_new_events
|
9
|
+
L("Fetch done with #{eventify.new_events.size} new events out of #{eventify.all_events.size} events.")
|
10
|
+
rescue Exception => e
|
11
|
+
L("Fetch failed with an error \"#{e.message}\": #{e.backtrace.join("\n")}")
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def L(message)
|
17
|
+
FileUtils.mkdir_p File.expand_path("../../logs", __dir__)
|
18
|
+
@logger ||= Logger.new(File.expand_path("../../logs/eventify.log", __dir__))
|
19
|
+
@logger.debug message
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
if $PROGRAM_NAME == __FILE__
|
25
|
+
require "rufus-scheduler"
|
26
|
+
|
27
|
+
scheduler = Rufus::Scheduler.new
|
28
|
+
scheduler.every("6h", Eventify::Scheduler, first_in: Time.now + 5)
|
29
|
+
|
30
|
+
scheduler.join
|
31
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Eventify::Configuration do
|
4
|
+
before do
|
5
|
+
stub_const "Eventify::Configuration::PATH", File.join(Dir.tmpdir, "eventify-config.yml")
|
6
|
+
File.delete Eventify::Configuration::PATH if File.exists? Eventify::Configuration::PATH
|
7
|
+
end
|
8
|
+
|
9
|
+
context "#initialize" do
|
10
|
+
it "has default settings by default" do
|
11
|
+
configuration = Eventify::Configuration.new
|
12
|
+
configuration[:subscribers].should == ["user@example.org"]
|
13
|
+
configuration[:mail].should == Mail.delivery_method.settings
|
14
|
+
end
|
15
|
+
|
16
|
+
it "allows to override settings" do
|
17
|
+
File.open(Eventify::Configuration::PATH, "w") { |f| f.write YAML.dump(foo: "baz") }
|
18
|
+
|
19
|
+
configuration = Eventify::Configuration.new(foo: "bar")
|
20
|
+
configuration[:foo].should == "bar"
|
21
|
+
configuration[:subscribers].should == ["user@example.org"]
|
22
|
+
end
|
23
|
+
|
24
|
+
it "loads settings from file too" do
|
25
|
+
File.open(Eventify::Configuration::PATH, "w") { |f| f.write YAML.dump(bar: "foo") }
|
26
|
+
|
27
|
+
configuration = Eventify::Configuration.new(foo: "bar")
|
28
|
+
configuration[:foo].should == "bar"
|
29
|
+
configuration[:bar].should == "foo"
|
30
|
+
configuration[:subscribers].should == ["user@example.org"]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "#save" do
|
35
|
+
it "saves config as yaml" do
|
36
|
+
Eventify::Configuration.new(foo: "bar").save
|
37
|
+
YAML.load(File.read(Eventify::Configuration::PATH))[:foo].should == "bar"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "#[]" do
|
42
|
+
it "retrieves configuration setting" do
|
43
|
+
Eventify::Configuration.new(baz: "bar")[:baz].should == "bar"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Eventify::Database do
|
4
|
+
context ".save" do
|
5
|
+
it "saves events into database" do
|
6
|
+
event1 = Eventify::Provider::Base.new(
|
7
|
+
id: "86362",
|
8
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
9
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
10
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
11
|
+
)
|
12
|
+
Eventify::Database.save event1
|
13
|
+
|
14
|
+
event2 = Eventify::Provider::Base.new(
|
15
|
+
id: "86363",
|
16
|
+
title: "Second event",
|
17
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138080",
|
18
|
+
date: Time.parse("2013-12-27 12:30:12"),
|
19
|
+
)
|
20
|
+
Eventify::Database.save event2
|
21
|
+
|
22
|
+
Eventify::Database.events.size.should == 2
|
23
|
+
Eventify::Database.events.should == [event1, event2]
|
24
|
+
end
|
25
|
+
|
26
|
+
it "raises an error when event already exists" do
|
27
|
+
event = Eventify::Provider::Base.new(
|
28
|
+
id: "86362",
|
29
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
30
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
31
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
32
|
+
)
|
33
|
+
Eventify::Database.save event
|
34
|
+
|
35
|
+
expect {
|
36
|
+
Eventify::Database.save event
|
37
|
+
}.to raise_error
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context ".exists?" do
|
42
|
+
it "true when event exists" do
|
43
|
+
event = Eventify::Provider::Base.new(
|
44
|
+
id: "86362",
|
45
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
46
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
47
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
48
|
+
)
|
49
|
+
Eventify::Database.save(event)
|
50
|
+
|
51
|
+
Eventify::Database.should exist(event)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "false when event does not exist" do
|
55
|
+
event = Eventify::Provider::Base.new(
|
56
|
+
id: "86362",
|
57
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
58
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
59
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
60
|
+
)
|
61
|
+
|
62
|
+
Eventify::Database.should_not exist(event)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "false when event id is different" do
|
66
|
+
event1 = Eventify::Provider::Base.new(
|
67
|
+
id: "86362",
|
68
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
69
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
70
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
71
|
+
)
|
72
|
+
Eventify::Database.save(event1)
|
73
|
+
|
74
|
+
event2 = Eventify::Provider::Base.new(
|
75
|
+
id: "86363",
|
76
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
77
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
78
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
79
|
+
)
|
80
|
+
|
81
|
+
Eventify::Database.should_not exist(event2)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "false when event link is different" do
|
85
|
+
event1 = Eventify::Provider::Base.new(
|
86
|
+
id: "86362",
|
87
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
88
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
89
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
90
|
+
)
|
91
|
+
Eventify::Database.save(event1)
|
92
|
+
|
93
|
+
event2 = Eventify::Provider::Base.new(
|
94
|
+
id: "86362",
|
95
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
96
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138099",
|
97
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
98
|
+
)
|
99
|
+
|
100
|
+
Eventify::Database.should_not exist(event2)
|
101
|
+
end
|
102
|
+
|
103
|
+
it "false when event provider is different" do
|
104
|
+
event1 = Eventify::Provider::Base.new(
|
105
|
+
id: "86362",
|
106
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
107
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
108
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
109
|
+
)
|
110
|
+
Eventify::Database.save(event1)
|
111
|
+
|
112
|
+
event2 = Eventify::Provider::Piletilevi.new(
|
113
|
+
id: "86362",
|
114
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
115
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
116
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
117
|
+
)
|
118
|
+
|
119
|
+
Eventify::Database.should_not exist(event2)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
it ".events loads events from database" do
|
124
|
+
event1 = Eventify::Provider::Base.new(
|
125
|
+
id: "86362",
|
126
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
127
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
128
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
129
|
+
)
|
130
|
+
Eventify::Database.save(event1)
|
131
|
+
|
132
|
+
event2 = Eventify::Provider::Piletilevi.new(
|
133
|
+
id: "86363",
|
134
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
135
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
136
|
+
date: Time.parse("2013-12-27 12:30:22"),
|
137
|
+
)
|
138
|
+
Eventify::Database.save(event2)
|
139
|
+
|
140
|
+
Eventify::Database.events.should == [event1, event2]
|
141
|
+
end
|
142
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Eventify::Mail do
|
4
|
+
context ".deliver" do
|
5
|
+
it "sends e-mail to all subscribers" do
|
6
|
+
::Mail.should_receive(:deliver).twice
|
7
|
+
|
8
|
+
Eventify::Mail.deliver([], Eventify::Configuration.new(subscribers: ["foo@example.org", "bar@example.org"]))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
it ".format" do
|
13
|
+
new_events = [
|
14
|
+
Eventify::Provider::Base.new(id: "123", title: "foo", link: "http://example.org/1", date: Time.now),
|
15
|
+
Eventify::Provider::Piletilevi.new(id: "456", title: "bar", link: "http://example.org/2", date: Time.now),
|
16
|
+
Eventify::Provider::Base.new(id: "456", title: "bar3", link: "http://example.org/3", date: Time.now)
|
17
|
+
]
|
18
|
+
|
19
|
+
Eventify::Mail.format(new_events).should == "There are some rumours going on about 3 possible awesome events:
|
20
|
+
|
21
|
+
* bar
|
22
|
+
http://example.org/2
|
23
|
+
|
24
|
+
* bar3
|
25
|
+
http://example.org/3
|
26
|
+
|
27
|
+
* foo
|
28
|
+
http://example.org/1
|
29
|
+
|
30
|
+
Your Humble Servant,
|
31
|
+
Eventify"
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Eventify::Provider::Base do
|
4
|
+
context ".fetch" do
|
5
|
+
it "needs to be implemented" do
|
6
|
+
class Eventify::Provider::CustomEvent < Eventify::Provider::Base; end
|
7
|
+
|
8
|
+
expect {
|
9
|
+
Eventify::Provider::CustomEvent.fetch
|
10
|
+
}.to raise_error(NotImplementedError)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "#initialize" do
|
15
|
+
it "parses raw event" do
|
16
|
+
event = {
|
17
|
+
id: "86362",
|
18
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
19
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
20
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
21
|
+
}
|
22
|
+
|
23
|
+
parsed_event = Eventify::Provider::Base.new(event)
|
24
|
+
parsed_event.id.should == "86362"
|
25
|
+
parsed_event.provider.should == "Eventify::Provider::Base"
|
26
|
+
parsed_event.title.should == event[:title]
|
27
|
+
parsed_event.link.should == event[:link]
|
28
|
+
parsed_event.date.should == event[:date]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "raises an error when id is missing" do
|
32
|
+
event = {
|
33
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
34
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
35
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
36
|
+
}
|
37
|
+
|
38
|
+
expect {
|
39
|
+
Eventify::Provider::Base.new(event)
|
40
|
+
}.to raise_error(Eventify::Provider::Base::MissingAttributeError)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "raises an error when title is missing" do
|
44
|
+
event = {
|
45
|
+
id: "86362",
|
46
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
47
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
48
|
+
}
|
49
|
+
|
50
|
+
expect {
|
51
|
+
Eventify::Provider::Base.new(event)
|
52
|
+
}.to raise_error(Eventify::Provider::Base::MissingAttributeError)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "raises an error when link is missing" do
|
56
|
+
event = {
|
57
|
+
id: "86362",
|
58
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
59
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
60
|
+
}
|
61
|
+
|
62
|
+
expect {
|
63
|
+
Eventify::Provider::Base.new(event)
|
64
|
+
}.to raise_error(Eventify::Provider::Base::MissingAttributeError)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context "#provider" do
|
69
|
+
it "uses class name" do
|
70
|
+
class Eventify::Provider::CustomEvent < Eventify::Provider::Base; end
|
71
|
+
Eventify::Provider::CustomEvent.new(id: "123", title: "foo", link: "http://example.org").provider.should == "Eventify::Provider::CustomEvent"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "#==" do
|
76
|
+
it "true when id and provider match" do
|
77
|
+
Eventify::Provider::Base.new(id: "123", title: "foo", link: "http://example.org").should == Eventify::Provider::Base.new(id: "123", title: "foo", link: "http://example.org")
|
78
|
+
end
|
79
|
+
|
80
|
+
it "false when id does not match" do
|
81
|
+
Eventify::Provider::Base.new(id: "123", title: "foo", link: "http://example.org").should_not == Eventify::Provider::Base.new(id: "321", title: "foo", link: "http://example.org")
|
82
|
+
end
|
83
|
+
|
84
|
+
it "false when class does not match" do
|
85
|
+
class Eventify::Provider::CustomEvent < Eventify::Provider::Base; end
|
86
|
+
Eventify::Provider::CustomEvent.new(id: "123", title: "foo", link: "http://example.org").should_not == Eventify::Provider::Base.new(id: "123", title: "foo", link: "http://example.org")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
context "#save" do
|
91
|
+
it "saves event into database" do
|
92
|
+
event = {
|
93
|
+
id: "86362",
|
94
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
95
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
96
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
97
|
+
}
|
98
|
+
Eventify::Provider::Base.new(event).save
|
99
|
+
|
100
|
+
Eventify::Database.events.size.should == 1
|
101
|
+
end
|
102
|
+
|
103
|
+
it "returns self" do
|
104
|
+
event = {
|
105
|
+
id: "86362",
|
106
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
107
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
108
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
109
|
+
}
|
110
|
+
event_instance = Eventify::Provider::Base.new(event)
|
111
|
+
event_instance.save.should == event_instance
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context "#exists?" do
|
116
|
+
it "true for existing event" do
|
117
|
+
event = {
|
118
|
+
id: "86362",
|
119
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
120
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
121
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
122
|
+
}
|
123
|
+
Eventify::Provider::Base.new(event).save
|
124
|
+
|
125
|
+
Eventify::Provider::Base.new(event).should exist
|
126
|
+
end
|
127
|
+
|
128
|
+
it "false for not existing event" do
|
129
|
+
event = {
|
130
|
+
id: "86362",
|
131
|
+
title: "Koit Toome ja Karl-Erik Taukar 17.01.2014 - 21:00 - Rock Cafe, Tallinn, Eesti",
|
132
|
+
link: "http://www.piletilevi.ee/est/piletid/muusika/rock_ja_pop/?concert=138090",
|
133
|
+
date: Time.parse("2013-12-27 12:30:11"),
|
134
|
+
}
|
135
|
+
|
136
|
+
Eventify::Provider::Base.new(event).should_not exist
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
it "sorts by title" do
|
141
|
+
event1 = Eventify::Provider::Base.new(id: "123", title: "foo", link: "http://example.org")
|
142
|
+
event2 = Eventify::Provider::Piletilevi.new(id: "123", title: "bar", link: "http://example.org")
|
143
|
+
[event1, event2].sort.should == [event2, event1]
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Eventify::Provider::FBI do
|
4
|
+
context "#fetch" do
|
5
|
+
it "fetches events" do
|
6
|
+
stub_request(:get, Eventify::Provider::FBI::URL).to_return(body: File.read(File.expand_path("../../support/fbi.html", __dir__)))
|
7
|
+
|
8
|
+
events = Eventify::Provider::FBI.fetch
|
9
|
+
events.should == [
|
10
|
+
Eventify::Provider::FBI.new(
|
11
|
+
title: "BONOBO Tallinna kontsert on välja müüdud",
|
12
|
+
link: "http://www.fbi.ee/bonobo-tallinna-kontsert-on-valja-muudud/",
|
13
|
+
date: Time.now,
|
14
|
+
id: "http://www.fbi.ee/bonobo-tallinna-kontsert-on-valja-muudud/"
|
15
|
+
),
|
16
|
+
Eventify::Provider::FBI.new(
|
17
|
+
title: "Rokilegend ROBERT PLANT esineb oma bändiga Tallinnas",
|
18
|
+
link: "http://www.fbi.ee/rokilegend-robert-plant-esineb-oma-bandiga-tallinnas/",
|
19
|
+
date: Time.now,
|
20
|
+
id: "http://www.fbi.ee/rokilegend-robert-plant-esineb-oma-bandiga-tallinnas/"
|
21
|
+
)
|
22
|
+
]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|