public async void CanHandleExceptionsThatAreThrown() { var request = new CallbackList.request() { @event = EventNames.invoice_create }; // modify the token to ensure it's bad client.Options.ThrowOnFail = true; // throw error if not a success status code var previousToken = client.Options.Token; client.Options.Token = Guid.NewGuid().ToString("N").ToLower(); try { var response = await client.CallbackList(request); } catch (FreshBooksException ex) { Assert.AreEqual(HttpStatusCode.Unauthorized, ex.StatusCode); Assert.AreEqual("Unauthorized", ex.Message); Assert.AreEqual("Authentication failed.", ex.error); throw; } finally { // reset the token for future tests client.Options.Token = previousToken; client.Options.ThrowOnFail = false; } }
public async void CanHandleSuccess() { var request = new CallbackList.request() { @event = EventNames.invoice_create }; var response = await client.CallbackList(request); Assert.AreEqual("ok", response.status); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); }
public async void CanListCallbacksAsync() { var request = new CallbackList.request() { @event = EventNames.invoice_create }; var response = await client.CallbackList(request); Assert.IsTrue(response.status == "ok"); if (response.callbacks.pages > 0) { Assert.IsNotNull(response.callbacks.callback); Assert.GreaterOrEqual(response.callbacks.callback.Length, 0); } else { Assert.IsNull(response.callbacks.callback); } }
public async void CanHandleExceptionsThatDoNotThrow() { var request = new CallbackList.request() { @event = EventNames.invoice_create }; // modify the token to ensure it's bad var previousToken = client.Options.Token; client.Options.Token = Guid.NewGuid().ToString("N").ToLower(); var response = await client.CallbackList(request); // reset the token for future tests client.Options.Token = previousToken; Assert.AreEqual("fail", response.status); Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode); Assert.AreEqual("Authentication failed.", response.error); }
public void CanSerializeRequestCorrectly() { var validRequest = @" <?xml version=""1.0"" encoding=""utf-8""?> <request method=""callback.list""> <event>invoice.create</event> <uri>http://example.com/webhooks/ready</uri> </request>".Trim(); var request = new CallbackList.request(); request.@event = EventNames.invoice_create; request.uri = "http://example.com/webhooks/ready"; var actual = request.ToXmlString(); // strip new lines to ensure the same rules apply actual = new Regex(@">\s*<").Replace(actual, "><"); validRequest = new Regex(@">\s*<").Replace(validRequest, "><"); Assert.AreEqual(validRequest, actual); }