Skip to content

Commit 84c576b

Browse files
committed
add sequel tests
1 parent d416053 commit 84c576b

File tree

2 files changed

+45
-3
lines changed

2 files changed

+45
-3
lines changed

contrib/ruby_event_store-sequel/lib/ruby_event_store/sequel/event_repository.rb

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,22 @@ def link_to_stream(event_ids, stream, expected_version)
6868
end
6969

7070
def position_in_stream(event_id, stream)
71-
record = @db[:event_store_events_in_streams].where(event_id: event_id, stream: stream.name).first
71+
record =
72+
@db[:event_store_events_in_streams]
73+
.select(::Sequel[:event_store_events_in_streams][:position])
74+
.where(
75+
::Sequel[:event_store_events_in_streams][:event_id] => event_id,
76+
::Sequel[:event_store_events_in_streams][:stream] => stream.name
77+
)
78+
.first
7279
raise EventNotFoundInStream.new if record.nil?
7380
record[:position]
7481
end
7582

7683
def global_position(event_id)
77-
record = @db[:event_store_events].where(event_id: event_id).first
84+
record = @db[:event_store_events]
85+
.select(::Sequel[:event_store_events][:id])
86+
.where(::Sequel[:event_store_events][:event_id] => event_id).first
7887
raise EventNotFound.new(event_id) if record.nil?
7988
record[:id] - 1
8089
end
@@ -266,7 +275,16 @@ def find_event_id(specification_event_id, specification_stream_name)
266275

267276
def read_from_global_stream(specification)
268277
dataset =
269-
@db[:event_store_events].select(:event_id, :event_type, :data, :metadata, :created_at, :valid_at).order(:id)
278+
@db[:event_store_events]
279+
.select(
280+
::Sequel[:event_store_events][:event_id],
281+
::Sequel[:event_store_events][:event_type],
282+
::Sequel[:event_store_events][:data],
283+
::Sequel[:event_store_events][:metadata],
284+
::Sequel[:event_store_events][:created_at],
285+
::Sequel[:event_store_events][:valid_at]
286+
)
287+
.order(:id)
270288

271289
dataset = dataset.where(event_type: specification.with_types) if specification.with_types?
272290
dataset = dataset.where(event_id: specification.with_ids) if specification.with_ids?

contrib/ruby_event_store-sequel/spec/event_repository_spec.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,30 @@ module Sequel
131131
expect(event_record[:valid_at]).to eq(t2)
132132
end
133133

134+
specify do
135+
repository.append_to_stream(
136+
[event0 = SRecord.new, event1 = SRecord.new],
137+
stream = Stream.new("stream"),
138+
ExpectedVersion.auto
139+
)
140+
141+
expect {
142+
repository.position_in_stream(event0.event_id, stream)
143+
}.to match_query /SELECT\s+.event_store_events_in_streams.\..position. FROM .event_store_events_in_streams.*/
144+
end
145+
146+
specify do
147+
repository.append_to_stream(
148+
[event = SRecord.new],
149+
Stream.new("stream"),
150+
ExpectedVersion.any
151+
)
152+
expect {
153+
repository.global_position(event.event_id)
154+
}.to match_query /SELECT\s+.event_store_events.\..id. FROM .event_store_events.*/
155+
end
156+
157+
134158

135159
private
136160

0 commit comments

Comments
 (0)