hotel_beds 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/INTERNALS.md +6 -0
  3. data/README.md +55 -29
  4. data/lib/hotel_beds/client.rb +11 -3
  5. data/lib/hotel_beds/connection.rb +2 -3
  6. data/lib/hotel_beds/hotel_basket_add/envelope.rb +71 -0
  7. data/lib/hotel_beds/hotel_basket_add/operation.rb +36 -0
  8. data/lib/hotel_beds/hotel_basket_add/request.rb +49 -0
  9. data/lib/hotel_beds/hotel_basket_add/response.rb +66 -0
  10. data/lib/hotel_beds/hotel_search/envelope.rb +27 -18
  11. data/lib/hotel_beds/hotel_search/parser/errors.rb +49 -0
  12. data/lib/hotel_beds/hotel_search/parser/hotel.rb +67 -0
  13. data/lib/hotel_beds/hotel_search/parser/price.rb +38 -0
  14. data/lib/hotel_beds/hotel_search/parser/room.rb +46 -0
  15. data/lib/hotel_beds/hotel_search/parser/room_grouper.rb +101 -0
  16. data/lib/hotel_beds/hotel_search/request.rb +5 -23
  17. data/lib/hotel_beds/hotel_search/response.rb +16 -68
  18. data/lib/hotel_beds/model.rb +0 -1
  19. data/lib/hotel_beds/model/available_room.rb +9 -11
  20. data/lib/hotel_beds/model/cancellation_policy.rb +14 -0
  21. data/lib/hotel_beds/model/hotel.rb +4 -0
  22. data/lib/hotel_beds/model/purchase.rb +16 -0
  23. data/lib/hotel_beds/model/requested_room.rb +7 -0
  24. data/lib/hotel_beds/model/room.rb +31 -0
  25. data/lib/hotel_beds/model/search_result.rb +0 -5
  26. data/lib/hotel_beds/model/service.rb +18 -0
  27. data/lib/hotel_beds/version.rb +1 -1
  28. data/spec/features/adding_a_hotel_to_basket_spec.rb +58 -0
  29. data/spec/features/hotel_search_spec.rb +31 -9
  30. data/spec/lib/hotel_beds/hotel_search/parser/room_grouper_spec.rb +53 -0
  31. data/spec/spec_helper.rb +8 -0
  32. metadata +20 -5
  33. data/lib/hotel_beds/hotel_search/room_grouper.rb +0 -64
  34. data/spec/lib/hotel_beds/hotel_search/room_grouper_spec.rb +0 -45
@@ -1,45 +0,0 @@
1
- require "hotel_beds/hotel_search/room_grouper"
2
-
3
- RSpec.describe HotelBeds::HotelSearch::RoomGrouper do
4
- subject { described_class.new(requested_rooms, response_rooms).results }
5
-
6
- context "when asking for 2 rooms (2 adults & 1 adult, 1 child)" do
7
- let(:requested_rooms) do
8
- [
9
- double(:requested_room, adult_count: 2, child_count: 0),
10
- double(:requested_room, adult_count: 1, child_count: 1)
11
- ]
12
- end
13
-
14
- let(:response_rooms) do
15
- [
16
- double(:response_room_1, id: "room_1", adult_count: 2, child_count: 0, number_available: 1),
17
- double(:response_room_2, id: "room_2", adult_count: 2, child_count: 0, number_available: 1),
18
- double(:response_room_3, id: "room_3", adult_count: 1, child_count: 1, number_available: 2),
19
- double(:response_room_4, id: "room_4", adult_count: 1, child_count: 1, number_available: 1),
20
- double(:response_room_5, id: "room_5", adult_count: 2, child_count: 0, number_available: 2)
21
- ]
22
- end
23
-
24
- it "should return 6 results" do
25
- expect(subject.size).to eq(6)
26
- end
27
- end
28
-
29
- context "when asking for 1 rooms (1 adult, 1 child)" do
30
- let(:requested_rooms) do
31
- [double(:requested_room, adult_count: 1, child_count: 1)]
32
- end
33
-
34
- let(:response_rooms) do
35
- [
36
- double(:response_room_1, id: "room_1", adult_count: 1, child_count: 1, number_available: 2),
37
- double(:response_room_2, id: "room_2", adult_count: 1, child_count: 1, number_available: 1)
38
- ]
39
- end
40
-
41
- it "should return 2 results" do
42
- expect(subject.size).to eq(2)
43
- end
44
- end
45
- end