Exemple #1
0
        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
                                     ));
        }
Exemple #2
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);
        }
Exemple #3
0
        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
                                     ));
        }
Exemple #4
0
        /// <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();
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }