コード例 #1
0
        public void Deserialize_ValidJson_InstantiatesNewObjectFromJson()
        {
            var json = "{\"latitude\": \"52.986375\", \"user_id\": 12, \"name\": \"Christina McArdle\", \"longitude\": \"-6.043701\"}";

            var customer = CustomerContract.Deserialize(json);

            Assert.IsNotNull(customer);
            Assert.AreEqual(52.986375, customer.Latitude);
            Assert.AreEqual(12, customer.UserId);
            Assert.AreEqual("Christina McArdle", customer.Name);
            Assert.AreEqual(-6.043701, customer.Longitude);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: d1ll4n/IntercomChallenge
        static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Please specify the path to the input file in the command line arguments.");
                return;
            }

            if (string.IsNullOrWhiteSpace(args[0]) || !File.Exists(args[0]))
            {
                Console.WriteLine("Input file not found.");
                return;
            }

            try
            {
                var lines      = File.ReadAllLines(args[0]);
                var customers  = new List <CustomerContract>();
                var calculator = new Calculator();

                var dublinOfficeLocation = new RadianCoordinate(Calculator.ConvertDegreesToRadians(53.339428), Calculator.ConvertDegreesToRadians(-6.257664));

                foreach (var line in lines)
                {
                    try
                    {
                        var customer = CustomerContract.Deserialize(line);

                        if (customer.IsValid())
                        {
                            customers.Add(customer);
                        }
                    }
                    catch (JsonSerializationException e)
                    {
                        continue;
                    }
                    catch (ArgumentNullException e)
                    {
                        continue;
                    }
                    catch (ArgumentException e)
                    {
                        continue;
                    }
                }

                var invitationManager = new InvitationManager(calculator, dublinOfficeLocation);
                var customersToInvite = invitationManager.DetermineCustomersToInvite(customers, 100d);

                Console.WriteLine("The following customers should be invited:");

                foreach (var customer in customersToInvite)
                {
                    Console.WriteLine($"{customer.Name} ({customer.UserId})");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine($"An unexpected error occurred: {e.Message}");
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
コード例 #3
0
        public void Deserialize_NullJson_ThrowsArgumentExcption()
        {
            string json = null;

            var customer = CustomerContract.Deserialize(json);
        }
コード例 #4
0
        public void Deserialize_EmptyJson_ThrowsArgumentException()
        {
            var json = string.Empty;

            var customer = CustomerContract.Deserialize(json);
        }
コード例 #5
0
        public void Deserialize_JsonMissingName_ThrowsJsonSerializationException()
        {
            var json = "{\"latitude\": \"52.986375\", \"user_id\": 12, \"longitude\": \"-6.043701\"}";

            var customer = CustomerContract.Deserialize(json);
        }
コード例 #6
0
        public void Deserialize_JsonMissingUserId_ThrowsJsonSerializationException()
        {
            var json = "{\"latitude\": \"52.986375\", \"name\": \"Christina McArdle\", \"longitude\": \"-6.043701\"}";

            var customer = CustomerContract.Deserialize(json);
        }