public void ShouldCallFunctionWithZeroAsTimestampWhenTimestampIsNotGiven() { var transport = new Transport { Transporter = "Transporter1", DeliverDate = null, PickupDate = null }; var update = new TransportUpdate { TransactionId = "62FA647C-AD54-4BCC-A860-E5A2664B019D", Transport = transport }; _dao.ExecuteTransportUpdate(update); _contractMock.Verify(m => m.GetFunction("updateTransport")); _functionMock.Verify(m => m.SendTransactionAsync( It.IsAny <string>(), It.IsAny <HexBigInteger>(), It.IsAny <HexBigInteger>(), "62FA647C-AD54-4BCC-A860-E5A2664B019D", "Transporter1", 0, 0 )); }
/// <summary> /// Parses the contents of the given node and returns a TransportUpdate /// </summary> /// <param name="node">The xml node to be parsed</param> /// <returns>a TransportUpdate</returns> /// <exception cref="ParserException">If the transport element cannot be found</exception> private static TransportUpdate ParseTransportUpdateNode(XmlNode node) { var transportUpdate = new TransportUpdate { TransactionId = FindProperty(node, "transaction_id") }; var transportNode = node.SelectSingleNode("transport"); if (transportNode == null) { throw new ParserException("Transport element could not be found"); } transportUpdate.Transport = ParseTransportNode(transportNode); var transportUpdateValidator = TransportUpdateValidator; transportUpdateValidator.Validate(transportUpdate); if (transportUpdateValidator.GetResults().Count != 0) { foreach (var result in transportUpdateValidator.GetResults()) { Console.WriteLine(result.Message); } throw new ParserException("Validator has detected an error."); } return(transportUpdate); }
public void ShouldCallCorrectFunctions() { var transport = new Transport { Transporter = "Transporter1", PickupDate = new DateTime(2018, 06, 08, 11, 00, 00), DeliverDate = new DateTime(2018, 06, 08, 12, 00, 00) }; var update = new TransportUpdate { TransactionId = "62FA647C-AD54-4BCC-A860-E5A2664B019D", Transport = transport }; _dao.ExecuteTransportUpdate(update); _contractMock.Verify(m => m.GetFunction("updateTransport")); _functionMock.Verify(m => m.SendTransactionAsync( It.IsAny <string>(), It.IsAny <HexBigInteger>(), It.IsAny <HexBigInteger>(), "62FA647C-AD54-4BCC-A860-E5A2664B019D", "Transporter1", 1528455600, 1528459200 )); }
/// <inheritdoc /> public void ExecuteTransportUpdate(TransportUpdate update) { var function = Duck.Cast <IFunction>(Contract.GetFunction("updateTransport")); var transporter = update.Transport.Transporter ?? ""; var pickupDate = DateTimeUtil.ConvertToTimestamp(update.Transport.PickupDate); var deliverDate = DateTimeUtil.ConvertToTimestamp(update.Transport.DeliverDate); var task = function.SendTransactionAsync( System.Configuration.ConfigurationManager.AppSettings["accountAddress"], new HexBigInteger(4712388), new HexBigInteger(0), update.TransactionId, transporter, pickupDate, deliverDate); task.ContinueWith(response => { _logger.Log("Update executed: " + response.Result); return(response); }); task.Wait(); }
public void ValidateInCorrectTransportInTransportUpdateModel() { var transportUpdate = new TransportUpdate { Transport = new Transport { Transporter = "DHL", PickupDate = DateTime.Now, DeliverDate = DateTime.Now.AddHours(1) } }; var results = Validate(transportUpdate).ToList(); Assert.AreEqual(1, results.Count); Assert.AreEqual("TransactionId cannot be null.", results[0].Message); }
public void ValidateCorrectUpdateTransportUpdateModel() { var transportUpdate = new TransportUpdate { TransactionId = "1", Transport = new Transport { Transporter = "DHL", PickupDate = DateTime.Now, DeliverDate = DateTime.Now.AddHours(1) } }; var results = Validate(transportUpdate); Assert.AreEqual(0, results.Count); }
public void ValidateInCorrectPickUpDateTransportModel() { var transportUpdate = new TransportUpdate { TransactionId = "1", Transport = new Transport { Transporter = "DHL", PickupDate = DateTime.Now.AddHours(1), DeliverDate = DateTime.Now } }; var results = Validate(transportUpdate).ToList(); Assert.AreEqual(1, results.Count); Assert.AreEqual("Pickup date needs to be before deliver date.", results[0].Message); }