|
1
|
{
|
|
2
|
"info": {
|
|
3
|
"_postman_id": "d7f7d77a-61b3-4ef1-8d89-d7b6ae1b5762",
|
|
4
|
"name": "Ctrip Booking Test Cases - Fix traveller",
|
|
5
|
"description": "Test cases for commit: Fix bug traveller for booking ctrip (19657379b9)\n\nScenarios covered:\n1. Single room with 1 guest\n2. Single room with multiple unique guests\n3. Single room with duplicate guest names\n4. Multiple rooms with 1 guest each\n5. Multiple rooms with multiple guests\n6. Multiple rooms with duplicate names across rooms",
|
|
6
|
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
|
|
7
|
"_exporter_id": "8802366"
|
|
8
|
},
|
|
9
|
"item": [
|
|
10
|
{
|
|
11
|
"name": "v1/availability - Search",
|
|
12
|
"request": {
|
|
13
|
"auth": {
|
|
14
|
"type": "noauth"
|
|
15
|
},
|
|
16
|
"method": "POST",
|
|
17
|
"header": [
|
|
18
|
{
|
|
19
|
"key": "Content-Type",
|
|
20
|
"value": "application/xml",
|
|
21
|
"type": "text"
|
|
22
|
},
|
|
23
|
{
|
|
24
|
"key": "Origin",
|
|
25
|
"value": "https://dev-api-ctrip.ohmyhotel.com",
|
|
26
|
"type": "text"
|
|
27
|
}
|
|
28
|
],
|
|
29
|
"body": {
|
|
30
|
"mode": "raw",
|
|
31
|
"raw": "<?xml version=\"1.0\"?>\r\n<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\r\n <SOAP-ENV:Header/>\r\n <SOAP-ENV:Body>\r\n <OTA_HotelAvailRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"6811640125\" TimeStamp=\"2025-12-21T20:54:54.099+08:00\" Version=\"2.2\" PrimaryLangID=\"en-us\">\r\n <POS>\r\n <Source>\r\n <RequestorID MessagePassword=\"Ctripr@Aye$9J6n37j#DeGM\" Type=\"5\" ID=\"ctrip\">\r\n <CompanyName Code=\"C\" CodeContext=\"1252\"/>\r\n </RequestorID>\r\n </Source>\r\n </POS>\r\n <AvailRequestSegments>\r\n <AvailRequestSegment>\r\n <HotelSearchCriteria>\r\n <Criterion>\r\n <HotelRef HotelCode=\"KR001072\"/>\r\n <StayDateRange Start=\"2026-01-09\" End=\"2026-01-10\"/>\r\n <RatePlanCandidates>\r\n <RatePlanCandidate RatePlanCode=\"RABB1351\"/>\r\n </RatePlanCandidates>\r\n <RoomStayCandidates>\r\n <RoomStayCandidate Quantity=\"1\" RoomTypeCode=\"RTAA2646\">\r\n <GuestCounts>\r\n <GuestCount AgeQualifyingCode=\"10\" Count=\"2\"/>\r\n </GuestCounts>\r\n </RoomStayCandidate>\r\n </RoomStayCandidates>\r\n </Criterion>\r\n </HotelSearchCriteria>\r\n </AvailRequestSegment>\r\n </AvailRequestSegments>\r\n </OTA_HotelAvailRQ>\r\n </SOAP-ENV:Body>\r\n</SOAP-ENV:Envelope>",
|
|
32
|
"options": {
|
|
33
|
"raw": {
|
|
34
|
"language": "xml"
|
|
35
|
}
|
|
36
|
}
|
|
37
|
},
|
|
38
|
"url": {
|
|
39
|
"raw": "https://dev-api-ctrip.ohmyhotel.com/v1/availability",
|
|
40
|
"protocol": "https",
|
|
41
|
"host": [
|
|
42
|
"dev-api-ctrip",
|
|
43
|
"ohmyhotel",
|
|
44
|
"com"
|
|
45
|
],
|
|
46
|
"path": [
|
|
47
|
"v1",
|
|
48
|
"availability"
|
|
49
|
]
|
|
50
|
}
|
|
51
|
},
|
|
52
|
"response": []
|
|
53
|
},
|
|
54
|
{
|
|
55
|
"name": "TC01 - Single Room, 1 Guest",
|
|
56
|
"request": {
|
|
57
|
"method": "POST",
|
|
58
|
"header": [
|
|
59
|
{
|
|
60
|
"key": "Content-Type",
|
|
61
|
"value": "text/xml"
|
|
62
|
}
|
|
63
|
],
|
|
64
|
"body": {
|
|
65
|
"mode": "raw",
|
|
66
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC01-SINGLE-1GUEST\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC01-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"1\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"1\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"1\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Non-smoking room please</Text>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC01-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
67
|
},
|
|
68
|
"url": {
|
|
69
|
"raw": "{{baseUrl}}/v1/booking",
|
|
70
|
"host": [
|
|
71
|
"{{baseUrl}}"
|
|
72
|
],
|
|
73
|
"path": [
|
|
74
|
"v1",
|
|
75
|
"booking"
|
|
76
|
]
|
|
77
|
},
|
|
78
|
"description": "**Test Case 01: Single Room with 1 Guest**\n\n**Scenario:** Basic booking with 1 room and 1 guest\n\n**Expected Result:**\n- Room 1: Guest \"John Doe\"\n- No TBA names"
|
|
79
|
},
|
|
80
|
"response": []
|
|
81
|
},
|
|
82
|
{
|
|
83
|
"name": "TC02 - Single Room, 2 Unique Guests",
|
|
84
|
"request": {
|
|
85
|
"method": "POST",
|
|
86
|
"header": [
|
|
87
|
{
|
|
88
|
"key": "Content-Type",
|
|
89
|
"value": "text/xml"
|
|
90
|
}
|
|
91
|
],
|
|
92
|
"body": {
|
|
93
|
"mode": "raw",
|
|
94
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC02-SINGLE-2GUESTS\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC02-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"1\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"1\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Jane</GivenName>\n <Surname>Smith</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"2\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">High floor preferred</Text>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC02-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
95
|
},
|
|
96
|
"url": {
|
|
97
|
"raw": "{{baseUrl}}/v1/booking",
|
|
98
|
"host": [
|
|
99
|
"{{baseUrl}}"
|
|
100
|
],
|
|
101
|
"path": [
|
|
102
|
"v1",
|
|
103
|
"booking"
|
|
104
|
]
|
|
105
|
},
|
|
106
|
"description": "**Test Case 02: Single Room with 2 Unique Guests**\n\n**Scenario:** 1 room with 2 different guests (isSingleRoom = true)\n\n**Expected Result (After Fix):**\n- Room 1: Guest 1 \"John Doe\", Guest 2 \"Jane Smith\"\n- Both guests should be included in the same room\n\n**Bug Before Fix:** Only first guest was added, second guest was TBA"
|
|
107
|
},
|
|
108
|
"response": []
|
|
109
|
},
|
|
110
|
{
|
|
111
|
"name": "TC03 - Single Room, 2 Duplicate Guests",
|
|
112
|
"request": {
|
|
113
|
"method": "POST",
|
|
114
|
"header": [
|
|
115
|
{
|
|
116
|
"key": "Content-Type",
|
|
117
|
"value": "text/xml"
|
|
118
|
}
|
|
119
|
],
|
|
120
|
"body": {
|
|
121
|
"mode": "raw",
|
|
122
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC03-SINGLE-DUPLICATE\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC03-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"1\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"1\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"2\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\"/>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC03-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
123
|
},
|
|
124
|
"url": {
|
|
125
|
"raw": "{{baseUrl}}/v1/booking",
|
|
126
|
"host": [
|
|
127
|
"{{baseUrl}}"
|
|
128
|
],
|
|
129
|
"path": [
|
|
130
|
"v1",
|
|
131
|
"booking"
|
|
132
|
]
|
|
133
|
},
|
|
134
|
"description": "**Test Case 03: Single Room with Duplicate Guest Names**\n\n**Scenario:** 1 room with 2 guests having the same name (duplicate detection)\n\n**Expected Result (After Fix):**\n- Room 1: Guest 1 \"John Doe\", Guest 2 \"TBA TBA\"\n- Duplicate names should be replaced with TBA\n\n**Key Logic Tested:** keyNames.contains(nameKey) check"
|
|
135
|
},
|
|
136
|
"response": []
|
|
137
|
},
|
|
138
|
{
|
|
139
|
"name": "TC04 - 2 Rooms, 1 Guest Each",
|
|
140
|
"request": {
|
|
141
|
"method": "POST",
|
|
142
|
"header": [
|
|
143
|
{
|
|
144
|
"key": "Content-Type",
|
|
145
|
"value": "text/xml"
|
|
146
|
}
|
|
147
|
],
|
|
148
|
"body": {
|
|
149
|
"mode": "raw",
|
|
150
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC04-MULTI-1EACH\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC04-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"2\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"2\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"206206\" CurrencyCode=\"KRW\" AmountBeforeTax=\"206206\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Jane</GivenName>\n <Surname>Smith</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"2\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Adjacent rooms please</Text>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"206206\" CurrencyCode=\"KRW\" AmountBeforeTax=\"206206\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC04-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
151
|
},
|
|
152
|
"url": {
|
|
153
|
"raw": "{{baseUrl}}/v1/booking",
|
|
154
|
"host": [
|
|
155
|
"{{baseUrl}}"
|
|
156
|
],
|
|
157
|
"path": [
|
|
158
|
"v1",
|
|
159
|
"booking"
|
|
160
|
]
|
|
161
|
},
|
|
162
|
"description": "**Test Case 04: 2 Rooms with 1 Guest Each**\n\n**Scenario:** 2 rooms, 2 total guests (isSingleRoom = false)\n\n**Expected Result:**\n- Room 1: Guest \"John Doe\"\n- Room 2: Guest \"Jane Smith\"\n- Each room gets 1 guest from the list\n\n**Key Logic Tested:** pdx = i (multi-room mode)"
|
|
163
|
},
|
|
164
|
"response": []
|
|
165
|
},
|
|
166
|
{
|
|
167
|
"name": "TC05 - 2 Rooms, 3 Guests (Uneven Distribution)",
|
|
168
|
"request": {
|
|
169
|
"method": "POST",
|
|
170
|
"header": [
|
|
171
|
{
|
|
172
|
"key": "Content-Type",
|
|
173
|
"value": "text/xml"
|
|
174
|
}
|
|
175
|
],
|
|
176
|
"body": {
|
|
177
|
"mode": "raw",
|
|
178
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC05-MULTI-UNEVEN\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC05-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"2\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"2\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"206206\" CurrencyCode=\"KRW\" AmountBeforeTax=\"206206\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Jane</GivenName>\n <Surname>Smith</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Bob</GivenName>\n <Surname>Wilson</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"3\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Late check-out</Text>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"206206\" CurrencyCode=\"KRW\" AmountBeforeTax=\"206206\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC05-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
179
|
},
|
|
180
|
"url": {
|
|
181
|
"raw": "{{baseUrl}}/v1/booking",
|
|
182
|
"host": [
|
|
183
|
"{{baseUrl}}"
|
|
184
|
],
|
|
185
|
"path": [
|
|
186
|
"v1",
|
|
187
|
"booking"
|
|
188
|
]
|
|
189
|
},
|
|
190
|
"description": "**Test Case 05: 2 Rooms with 3 Guests (Uneven Distribution)**\n\n**Scenario:** 2 rooms, 3 total guests - tests remainCount logic\n\n**Expected Result:**\n- Room 1: Guest 1 \"John Doe\", Guest 2 \"TBA TBA\" (2 guests, 1 named + 1 TBA)\n- Room 2: Guest \"Jane Smith\" (1 guest)\n\n**Key Logic Tested:** remainCount distribution (3/2 = 1 remainder)"
|
|
191
|
},
|
|
192
|
"response": []
|
|
193
|
},
|
|
194
|
{
|
|
195
|
"name": "TC06 - 2 Rooms, Duplicate Names Across Rooms",
|
|
196
|
"request": {
|
|
197
|
"method": "POST",
|
|
198
|
"header": [
|
|
199
|
{
|
|
200
|
"key": "Content-Type",
|
|
201
|
"value": "text/xml"
|
|
202
|
}
|
|
203
|
],
|
|
204
|
"body": {
|
|
205
|
"mode": "raw",
|
|
206
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC06-MULTI-DUPLICATE\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC06-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"2\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"2\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"206206\" CurrencyCode=\"KRW\" AmountBeforeTax=\"206206\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"2\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\"/>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"206206\" CurrencyCode=\"KRW\" AmountBeforeTax=\"206206\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC06-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
207
|
},
|
|
208
|
"url": {
|
|
209
|
"raw": "{{baseUrl}}/v1/booking",
|
|
210
|
"host": [
|
|
211
|
"{{baseUrl}}"
|
|
212
|
],
|
|
213
|
"path": [
|
|
214
|
"v1",
|
|
215
|
"booking"
|
|
216
|
]
|
|
217
|
},
|
|
218
|
"description": "**Test Case 06: 2 Rooms with Duplicate Names**\n\n**Scenario:** 2 rooms, same guest name provided twice\n\n**Expected Result:**\n- Room 1: Guest \"John Doe\"\n- Room 2: Guest \"TBA TBA\" (duplicate detected)\n\n**Key Logic Tested:** Duplicate detection across multiple rooms"
|
|
219
|
},
|
|
220
|
"response": []
|
|
221
|
},
|
|
222
|
{
|
|
223
|
"name": "TC07 - Single Room, 3 Guests (Mixed Unique and Duplicate)",
|
|
224
|
"request": {
|
|
225
|
"method": "POST",
|
|
226
|
"header": [
|
|
227
|
{
|
|
228
|
"key": "Content-Type",
|
|
229
|
"value": "text/xml"
|
|
230
|
}
|
|
231
|
],
|
|
232
|
"body": {
|
|
233
|
"mode": "raw",
|
|
234
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC07-SINGLE-MIXED\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC07-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"1\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"1\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Jane</GivenName>\n <Surname>Smith</Surname>\n </PersonName>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"3\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Family room</Text>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC07-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
235
|
},
|
|
236
|
"url": {
|
|
237
|
"raw": "{{baseUrl}}/v1/booking",
|
|
238
|
"host": [
|
|
239
|
"{{baseUrl}}"
|
|
240
|
],
|
|
241
|
"path": [
|
|
242
|
"v1",
|
|
243
|
"booking"
|
|
244
|
]
|
|
245
|
},
|
|
246
|
"description": "**Test Case 07: Single Room with 3 Guests (Mixed Unique and Duplicate)**\n\n**Scenario:** 1 room with 3 guests - John, Jane, John (duplicate)\n\n**Expected Result (After Fix):**\n- Room 1: Guest 1 \"John Doe\", Guest 2 \"Jane Smith\", Guest 3 \"TBA TBA\"\n- Third guest is duplicate of first, should be TBA\n\n**Key Logic Tested:** Combined single room + duplicate detection"
|
|
247
|
},
|
|
248
|
"response": []
|
|
249
|
},
|
|
250
|
{
|
|
251
|
"name": "TC08 - 3 Rooms, 4 Guests (Complex Distribution)",
|
|
252
|
"request": {
|
|
253
|
"method": "POST",
|
|
254
|
"header": [
|
|
255
|
{
|
|
256
|
"key": "Content-Type",
|
|
257
|
"value": "text/xml"
|
|
258
|
}
|
|
259
|
],
|
|
260
|
"body": {
|
|
261
|
"mode": "raw",
|
|
262
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC08-COMPLEX\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC08-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"3\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"3\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"309309\" CurrencyCode=\"KRW\" AmountBeforeTax=\"309309\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Jane</GivenName>\n <Surname>Smith</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Bob</GivenName>\n <Surname>Wilson</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Alice</GivenName>\n <Surname>Brown</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"4\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Group booking - same floor</Text>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"309309\" CurrencyCode=\"KRW\" AmountBeforeTax=\"309309\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC08-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
263
|
},
|
|
264
|
"url": {
|
|
265
|
"raw": "{{baseUrl}}/v1/booking",
|
|
266
|
"host": [
|
|
267
|
"{{baseUrl}}"
|
|
268
|
],
|
|
269
|
"path": [
|
|
270
|
"v1",
|
|
271
|
"booking"
|
|
272
|
]
|
|
273
|
},
|
|
274
|
"description": "**Test Case 08: 3 Rooms with 4 Guests (Complex Distribution)**\n\n**Scenario:** 3 rooms, 4 guests - tests complex distribution\n4 guests / 3 rooms = 1 guest/room + 1 remainder\n\n**Expected Result:**\n- Room 1: \"John Doe\" + \"TBA TBA\" (2 guests - gets remainder)\n- Room 2: \"Jane Smith\" (1 guest)\n- Room 3: \"Bob Wilson\" (1 guest)\n\n**Key Logic Tested:** remainCount with multi-room scenario"
|
|
275
|
},
|
|
276
|
"response": []
|
|
277
|
},
|
|
278
|
{
|
|
279
|
"name": "TC09 - Single Room, More Guests Than PersonName",
|
|
280
|
"request": {
|
|
281
|
"method": "POST",
|
|
282
|
"header": [
|
|
283
|
{
|
|
284
|
"key": "Content-Type",
|
|
285
|
"value": "text/xml"
|
|
286
|
}
|
|
287
|
],
|
|
288
|
"body": {
|
|
289
|
"mode": "raw",
|
|
290
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC09-MORE-GUESTS\" TimeStamp=\"2025-12-15T10:00:00.000+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC09-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"1\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast Included</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"1\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-02-01\" ExpireDate=\"2026-02-02\">\n <Base AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Test Hotel\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>John</GivenName>\n <Surname>Doe</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Support</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"3\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-02-01 0:00:00\" End=\"2026-02-02 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Extra bed needed</Text>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC09-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
291
|
},
|
|
292
|
"url": {
|
|
293
|
"raw": "{{baseUrl}}/v1/booking",
|
|
294
|
"host": [
|
|
295
|
"{{baseUrl}}"
|
|
296
|
],
|
|
297
|
"path": [
|
|
298
|
"v1",
|
|
299
|
"booking"
|
|
300
|
]
|
|
301
|
},
|
|
302
|
"description": "**Test Case 09: Single Room, More Guests Than PersonName Provided**\n\n**Scenario:** 1 room, GuestCount=3 but only 1 PersonName provided\n\n**Expected Result:**\n- Room 1: Guest 1 \"John Doe\", Guest 2 \"TBA TBA\", Guest 3 \"TBA TBA\"\n- Missing names should default to TBA\n\n**Key Logic Tested:** pdx < personNodeList.getLength() boundary check"
|
|
303
|
},
|
|
304
|
"response": []
|
|
305
|
},
|
|
306
|
{
|
|
307
|
"name": "TC10 - Original Case",
|
|
308
|
"request": {
|
|
309
|
"method": "POST",
|
|
310
|
"header": [
|
|
311
|
{
|
|
312
|
"key": "Content-Type",
|
|
313
|
"value": "text/xml"
|
|
314
|
}
|
|
315
|
],
|
|
316
|
"body": {
|
|
317
|
"mode": "raw",
|
|
318
|
"raw": "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <SOAP-ENV:Header/>\n <SOAP-ENV:Body>\n <OTA_HotelResRQ xmlns=\"http://www.opentravel.org/OTA/2003/05\" EchoToken=\"TC10-ORIGINAL\" TimeStamp=\"2025-12-15T14:01:55.935+08:00\" Version=\"2.2\">\n <POS>\n <Source>\n <RequestorID MessagePassword=\"{{ctripPw}}\" Type=\"5\" ID=\"{{ctripId}}\">\n <CompanyName Code=\"C\" CodeContext=\"{{codeContext}}\"/>\n </RequestorID>\n </Source>\n </POS>\n <UniqueID Type=\"501\" ID=\"TC10-{{$timestamp}}\"/>\n <HotelReservations>\n <HotelReservation>\n <RoomStays>\n <RoomStay>\n <RoomTypes>\n <RoomType NumberOfUnits=\"1\" RoomTypeCode=\"{{roomTypeCode}}\"/>\n </RoomTypes>\n <RatePlans>\n <RatePlan RatePlanCode=\"{{ratePlanCode}}\" PrepaidIndicator=\"true\">\n <RatePlanDescription>\n <Text TextFormat=\"PlainText\" Language=\"en-us\">Breakfast I</Text>\n </RatePlanDescription>\n </RatePlan>\n </RatePlans>\n <RoomRates>\n <RoomRate RoomTypeCode=\"{{roomTypeCode}}\" NumberOfUnits=\"1\" RatePlanCode=\"{{ratePlanCode}}\" RatePlanCategory=\"501\">\n <Rates>\n <Rate EffectiveDate=\"2026-01-09\" ExpireDate=\"2026-01-10\">\n <Base AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n </Rate>\n </Rates>\n </RoomRate>\n </RoomRates>\n <BasicPropertyInfo HotelCode=\"{{hotelCode}}\" HotelName=\"Shinsegae Youngrangho Resort test\"/>\n </RoomStay>\n </RoomStays>\n <ResGuests>\n <ResGuest>\n <Profiles>\n <ProfileInfo>\n <Profile>\n <Customer>\n <PersonName>\n <GivenName>Dang Tung</GivenName>\n <Surname>Ngo</Surname>\n </PersonName>\n <PersonName>\n <GivenName>Dang Tung</GivenName>\n <Surname>Ngo</Surname>\n </PersonName>\n <ContactPerson>\n <PersonName>\n <GivenName>Ctrip</GivenName>\n <Surname>Team</Surname>\n </PersonName>\n <Telephone PhoneNumber=\"+84-28-7308-4199\"/>\n <Email>hotelSupport@trip.com</Email>\n </ContactPerson>\n </Customer>\n </Profile>\n </ProfileInfo>\n </Profiles>\n </ResGuest>\n </ResGuests>\n <ResGlobalInfo>\n <GuestCounts>\n <GuestCount Count=\"2\"/>\n </GuestCounts>\n <TimeSpan Start=\"2026-01-09 0:00:00\" End=\"2026-01-10 0:00:00\"/>\n <SpecialRequests>\n <SpecialRequest>\n <Text TextFormat=\"PlainText\" Language=\"en-us\"/>\n </SpecialRequest>\n </SpecialRequests>\n <DepositPayments>\n <GuaranteePayment>\n <AcceptedPayments>\n <AcceptedPayment>\n <PaymentCard/>\n </AcceptedPayment>\n </AcceptedPayments>\n </GuaranteePayment>\n </DepositPayments>\n <Total AmountAfterTax=\"103103\" CurrencyCode=\"KRW\" AmountBeforeTax=\"103103\"/>\n <TPA_Extensions>\n <IsReserved>false</IsReserved>\n </TPA_Extensions>\n <HotelReservationIDs>\n <HotelReservationID ResID_Type=\"501\" ResID_Value=\"TC10-{{$timestamp}}\"/>\n </HotelReservationIDs>\n </ResGlobalInfo>\n </HotelReservation>\n </HotelReservations>\n </OTA_HotelResRQ>\n </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>"
|
|
319
|
},
|
|
320
|
"url": {
|
|
321
|
"raw": "{{baseUrl}}/v1/booking",
|
|
322
|
"host": [
|
|
323
|
"{{baseUrl}}"
|
|
324
|
],
|
|
325
|
"path": [
|
|
326
|
"v1",
|
|
327
|
"booking"
|
|
328
|
]
|
|
329
|
},
|
|
330
|
"description": "**Test Case 10: Original Bug Case (User's Request - Fixed)**\n\n**Scenario:** Based on user's original request - 1 room, 2 guests with same name\n\n**Expected Result (After Fix):**\n- Room 1: Guest 1 \"Ngo Dang Tung\", Guest 2 \"TBA TBA\"\n- Duplicate name should be replaced with TBA\n\n**Note:** TimeSpan fixed to match Rate dates (2026-01-09 to 2026-01-10)"
|
|
331
|
},
|
|
332
|
"response": []
|
|
333
|
}
|
|
334
|
],
|
|
335
|
"event": [
|
|
336
|
{
|
|
337
|
"listen": "prerequest",
|
|
338
|
"script": {
|
|
339
|
"type": "text/javascript",
|
|
340
|
"packages": {},
|
|
341
|
"requests": {},
|
|
342
|
"exec": [
|
|
343
|
""
|
|
344
|
]
|
|
345
|
}
|
|
346
|
},
|
|
347
|
{
|
|
348
|
"listen": "test",
|
|
349
|
"script": {
|
|
350
|
"type": "text/javascript",
|
|
351
|
"packages": {},
|
|
352
|
"requests": {},
|
|
353
|
"exec": [
|
|
354
|
""
|
|
355
|
]
|
|
356
|
}
|
|
357
|
}
|
|
358
|
],
|
|
359
|
"variable": [
|
|
360
|
{
|
|
361
|
"key": "baseUrl",
|
|
362
|
"value": "http://localhost:6400"
|
|
363
|
},
|
|
364
|
{
|
|
365
|
"key": "ctripId",
|
|
366
|
"value": "ctrip"
|
|
367
|
},
|
|
368
|
{
|
|
369
|
"key": "ctripPw",
|
|
370
|
"value": "Ctripr@Aye$9J6n37j#DeGM"
|
|
371
|
},
|
|
372
|
{
|
|
373
|
"key": "codeContext_VN",
|
|
374
|
"value": "1311"
|
|
375
|
},
|
|
376
|
{
|
|
377
|
"key": "hotelCode",
|
|
378
|
"value": "KR001072"
|
|
379
|
},
|
|
380
|
{
|
|
381
|
"key": "roomTypeCode",
|
|
382
|
"value": "RTAA2646"
|
|
383
|
},
|
|
384
|
{
|
|
385
|
"key": "ratePlanCode",
|
|
386
|
"value": "RABB1351"
|
|
387
|
},
|
|
388
|
{
|
|
389
|
"key": "codeContext",
|
|
390
|
"value": ""
|
|
391
|
}
|
|
392
|
]
|
|
393
|
}
|