예제 #1
0
        public void GetAllCustomer_CanReadExistingFileProvidedInAppSettings()
        {
            ICustomerProvider customerProvider = new CustomerFileReader(new CustomerJsonParser());
            var result = customerProvider.GetAllCustomers();

            Assert.NotNull(result);
        }
예제 #2
0
        public void FindCustomersByDistance_ReturnsExpectedResults()
        {
            string filePath = Path.Combine(Environment.CurrentDirectory, @"TestData\", "testData.txt");

            ConfigurationManager.AppSettings["CustomerFile"] = filePath;

            int      distanceInKilometers = 100;
            Location headquatersLocation  = new Location(53.339428, -6.257664);

            ICustomerJsonParser parser   = new CustomerJsonParser();
            ICustomerProvider   provider = new CustomerFileReader(parser);
            ICustomerService    service  = new CustomerService(provider);
            var result = service.FindCustomersByDistance(headquatersLocation, distanceInKilometers);

            Assert.NotNull(result);
            Assert.Equal(3, result.Count);

            for (int i = 1; i < result.Count; i++)
            {
                Assert.True(result[i - 1].Id < result[i].Id);
            }

            Assert.Equal(4, result[0].Id);
            Assert.Equal(5, result[1].Id);
            Assert.Equal(12, result[2].Id);
        }
예제 #3
0
        public void GetAllCustomer_ReadNonExistingFileProvidedInAppSettings_ThrowsFileNotFoundException()
        {
            string filePath = Path.Combine(Environment.CurrentDirectory, @"Data\", "NotExistingFile.txt");

            ConfigurationManager.AppSettings["CustomerFile"] = filePath;

            ICustomerProvider customerProvider = new CustomerFileReader(new CustomerJsonParser());

            Assert.Throws <FileNotFoundException>(() => customerProvider.GetAllCustomers());
        }
예제 #4
0
        public void GetAllCustomer_ReturnsSortedResults()
        {
            ICustomerProvider customerProvider = new CustomerFileReader(new CustomerJsonParser());
            var result = customerProvider.GetAllCustomers();

            Assert.NotNull(result);
            for (int i = 1; i < result.Count; i++)
            {
                Assert.True(result[i - 1].Id < result[i].Id);
            }
        }
예제 #5
0
        public void GetAllCustomer_ReturnsNumberOfExpectedResults()
        {
            var mockJsonParser = new Mock <ICustomerJsonParser>();

            mockJsonParser.Setup(x => x.ParseJsonLine(It.IsAny <string>())).Returns(() => new Customer(1, "John Doe"));

            ICustomerProvider customerProvider = new CustomerFileReader(mockJsonParser.Object);
            var result = customerProvider.GetAllCustomers();

            Assert.NotNull(result);
            Assert.Equal(7, result.Count);
        }