public async void AnnotateTransaction() { using (var server = TestServer.Create(app => { app.Run(async context => { Assert.AreEqual("Bearer testAccessToken", context.Request.Headers["Authorization"]); Assert.AreEqual("PATCH", context.Request.Method); Assert.AreEqual("/transactions/1", context.Request.Uri.PathAndQuery); var formCollection = await context.Request.ReadFormAsync(); Assert.AreEqual("value1", formCollection["metadata[key1]"]); Assert.AreEqual("", formCollection["metadata[key2]"]); await context.Response.WriteAsync( @"{ 'transaction': { 'account_balance': 12334, 'amount': -679, 'created': '2015-08-23T16:15:03Z', 'currency': 'GBP', 'description': 'VUE BSL LTD ISLINGTON GBR', 'id': 'tx_00008zL2INM3xZ41THuRF3', 'merchant': 'merch_00008z6uFVhVBcaZzSQwCX', 'metadata': { 'foo': 'bar' }, 'notes': '', 'is_load': false, 'settled': true, 'category': 'eating_out' } }" ); }); })) { using (var client = new MondoClient(server.HttpClient, "testAccessToken")) { var transaction = await client.AnnotateTransactionAsync("1", new Dictionary <string, string> { { "key1", "value1" }, { "key2", "" } }); Assert.AreEqual("foo", transaction.Metadata.First().Key); Assert.AreEqual("bar", transaction.Metadata.First().Value); } } }
public async void AnnotateTransaction() { using (var server = TestServer.Create(app => { app.Run(async context => { Assert.AreEqual("Bearer testAccessToken", context.Request.Headers["Authorization"]); Assert.AreEqual("PATCH", context.Request.Method); Assert.AreEqual("/transactions/1", context.Request.Uri.PathAndQuery); var formCollection = await context.Request.ReadFormAsync(); Assert.AreEqual("value1", formCollection["metadata[key1]"]); Assert.AreEqual("", formCollection["metadata[key2]"]); await context.Response.WriteAsync( @"{ 'transaction': { 'account_balance': 12334, 'amount': -679, 'created': '2015-08-23T16:15:03Z', 'currency': 'GBP', 'description': 'VUE BSL LTD ISLINGTON GBR', 'id': 'tx_00008zL2INM3xZ41THuRF3', 'merchant': 'merch_00008z6uFVhVBcaZzSQwCX', 'metadata': { 'foo': 'bar' }, 'notes': '', 'is_load': false, 'settled': true, 'category': 'eating_out' } }" ); }); })) { using (var client = new MondoClient(server.HttpClient, "testAccessToken")) { var transaction = await client.AnnotateTransactionAsync("1", new Dictionary<string, string> { { "key1", "value1" }, {"key2", "" } }); Assert.AreEqual("foo", transaction.Metadata.First().Key); Assert.AreEqual("bar", transaction.Metadata.First().Value); } } }