         let expectationForTest = expectation(description: "test")
         let configuration = NetworkConfiguration(host: "http://api.timezonedb.com/")
         let parameters = ["key": "1S2RMN6YBMYA", "country": "GB", "format": "json"]
-        // Execute and test
-        let session1 = HTTPSession(
-            requestURLPath: "/v2/list-time-zone",
-            httpMethod: .get,
+        
+        // Execute and test
+        let session1 = HTTPSession(
+            urlPath: "/v2/list-time-zone",
+            method: .get,
             parameters: parameters,
             configuration: configuration!
-        ) { (response, result, error, cancelled) in
+        ) { _, result, error, wasCancelled in
                                     
             XCTAssertNil(error)
-            
-            // TODO: Automatic JSON parsing was removed from the library, due to incompatibility with our project.
-            //       Result is returned as Data. Will fix once we get highlights running
-            
-//            let resultDictionary = result as! Data
-//            let zones = resultDictionary["zones"] as! [[String: Any]]
-//            let firstZone = zones.first!
-//            XCTAssertEqual(firstZone["countryCode"] as! String, "GB")
-            
-            expectationForTest.fulfill()
-        }
-        XCTAssertNotNil(session1)
+            XCTAssertFalse(wasCancelled)
+            
+            let zones = result?["zones"] as? [[String: Any]]
+            XCTAssertEqual(zones?.first?["countryCode"] as? String, "GB")
+            
+            expectationForTest.fulfill()
+        }
+        
+        XCTAssertNotNil(session1)
+        
         session1.configuration = configuration!
         
         do {

        // Prepare stubbed session
        let stubbedSession = StubbedURLSession()
        let responseString = "{\n \"zones\":[{\"countryCode\":\"UK\"}] \n}"
        stubbedSession.addStub(fullURL:"http://api.timezonedb.com/v2/list-time-zone?key=1S2RMN6YBMYA&format=json&country=GB",
                               response:responseString)
        // Stubbed session with one missing parameter, therefore not valid
        stubbedSession.addStub(fullURL:"http://api.timezonedb.com/v2/list-time-zone?key=1S2RMN6YBMYA&format=json",
                               response:responseString)
        
        // Execute and test
        let session1 = HTTPSession(
            requestURLPath: "/v2/list-time-zone",
            httpMethod: .get,
            parameters: parameters,
            configuration: configuration!,
            session: stubbedSession
        ) { (response, result, error, cancelled) in
                                    
            XCTAssertNil(error)
            
            // TODO: Automatic JSON parsing was removed from the library, due to incompatibility with our project.
            //       Result is returned as Data. Will fix once we get highlights running
            
//            let resultDictionary = result as! [String: Any]
//            let zones = resultDictionary["zones"] as! [[String: Any]]
//            let firstZone = zones.first!
//            XCTAssertEqual(firstZone["countryCode"] as! String, "UK")
            
            expectationForTest.fulfill()
        }
        XCTAssertNotNil(session1)
        session1.session = stubbedSession
        
        do {

        // Prepare stubbed session
        let stubbedSession = StubbedURLSession()
        let responseString = "{\n \"zones\":[{\"countryCode\":\"UK\"}] \n}"
        stubbedSession.addStub(
            fullURL: "http://api.timezonedb.com/v2/list-time-zone?key=1S2RMN6YBMYA&format=json&country=GB",
            response: responseString
        )
        
        // Execute and test
        let session1 = HTTPSession(
            urlPath: "/v2/list-time-zone",
            method: .get,
            parameters: parameters,
            configuration: configuration!,
            session: stubbedSession
        ) { _, result, error, wasCancelled in
                                    
            XCTAssertNil(error)
            XCTAssertFalse(wasCancelled)
            
            let zones = result?["zones"] as? [[String: Any]]
            XCTAssertEqual(zones?.first?["countryCode"] as? String, "UK")
            
            expectationForTest.fulfill()
        }
        
        XCTAssertNotNil(session1)
        
        session1.session = stubbedSession
        
        do {
