public void testDetectCouriers() { //get trackings of this number. List <Courier> couriers = connection.detectCouriers(trackingNumberToDetect); Assert.AreEqual(2, couriers.Count); //the couriers should be dpd or fedex Assert.IsTrue(Equals(couriers[0].slug, couriersDetected[0]) || Equals(couriers[1].slug, couriersDetected[0])); Assert.IsTrue(Equals(couriers[0].slug, couriersDetected[1]) || Equals(couriersDetected[1], couriers[1].slug)); //if the trackingNumber doesn't match any courier defined, should give an error. try { List <Courier> couriers1 = connection.detectCouriers(trackingNumberToDetectError); Assert.AreEqual(0, couriers1.Count); }catch (Exception e) { Assert.AreEqual("{\"meta\":{\"code\":4005,\"message\":\"The value of `tracking_number` is invalid.\",\"type\":\"BadRequest\"},\"data\":{\"tracking\":{\"tracking_number\":\"asdq\"}}}", e.Message); } List <String> slugs = new List <String>(); slugs.Add("dtdc"); slugs.Add("ukrposhta"); slugs.Add("usps"); // slugs.add("asdfasdfasdfasd"); slugs.Add("dpd"); List <Courier> couriers2 = connection.detectCouriers(trackingNumberToDetect, "28046", "", null, slugs); Assert.AreEqual(1, couriers2.Count); }