@@ -177,6 +177,58 @@ class RequestCreatorTests: XCTestCase {
177177 XCTAssertEqual ( args [ JsonKey . InApp. count] , inAppMessageRequestCount. stringValue)
178178 XCTAssertEqual ( args [ JsonKey . systemVersion] , UIDevice . current. systemVersion)
179179 }
180+
181+ func testGetEmbeddedMessagesRequestFailure( ) {
182+ let auth = Auth ( userId: nil , email: nil , authToken: nil , userIdUnknownUser: nil )
183+ let requestCreator = RequestCreator ( auth: auth, deviceMetadata: deviceMetadata)
184+
185+ let failingRequest = requestCreator. createGetEmbeddedMessagesRequest ( placementIds: nil )
186+
187+ if let _ = try ? failingRequest. get ( ) {
188+ XCTFail ( " request succeeded despite userId and email being nil " )
189+ }
190+ }
191+
192+ func testGetEmbeddedMessagesRequest( ) {
193+ let request = createRequestCreator ( ) . createGetEmbeddedMessagesRequest ( placementIds: nil )
194+ let urlRequest = convertToUrlRequest ( request)
195+
196+ TestUtils . validateHeader ( urlRequest, apiKey)
197+ TestUtils . validate ( request: urlRequest, requestType: . get, apiEndPoint: Endpoint . api, path: Const . Path. getEmbeddedMessages)
198+
199+ guard let url = urlRequest. url, let urlComponents = URLComponents ( url: url, resolvingAgainstBaseURL: false ) else {
200+ XCTFail ( " could not create URLComponents from request url " )
201+ return
202+ }
203+
204+ let queryItems = urlComponents. queryItems ?? [ ]
205+ XCTAssertEqual ( queryItems. first ( where: { $0. name == JsonKey . email } ) ? . value, auth. email)
206+ XCTAssertEqual ( queryItems. first ( where: { $0. name == JsonKey . Embedded. packageName } ) ? . value, Bundle . main. appPackageName)
207+ XCTAssertEqual ( queryItems. first ( where: { $0. name == JsonKey . systemVersion } ) ? . value, UIDevice . current. systemVersion)
208+ XCTAssertTrue ( queryItems. filter { $0. name == JsonKey . Embedded. placementIds } . isEmpty)
209+ }
210+
211+ func testGetEmbeddedMessagesRequestWithPlacementIds( ) {
212+ let request = createRequestCreator ( ) . createGetEmbeddedMessagesRequest ( placementIds: [ 1 , 2 , 3 ] )
213+ let urlRequest = convertToUrlRequest ( request)
214+
215+ TestUtils . validateHeader ( urlRequest, apiKey)
216+ TestUtils . validate ( request: urlRequest, requestType: . get, apiEndPoint: Endpoint . api, path: Const . Path. getEmbeddedMessages)
217+
218+ guard let url = urlRequest. url, let urlComponents = URLComponents ( url: url, resolvingAgainstBaseURL: false ) else {
219+ XCTFail ( " could not create URLComponents from request url " )
220+ return
221+ }
222+
223+ let queryItems = urlComponents. queryItems ?? [ ]
224+ XCTAssertEqual ( queryItems. first ( where: { $0. name == JsonKey . email } ) ? . value, auth. email)
225+
226+ let placementIds = queryItems
227+ . filter { $0. name == JsonKey . Embedded. placementIds }
228+ . compactMap ( \. value)
229+
230+ XCTAssertEqual ( placementIds, [ " 1 " , " 2 " , " 3 " ] )
231+ }
180232
181233 func testTrackEventRequest( ) {
182234 let eventName = " dsfsdf "
0 commit comments