public void TestCompressionAndDecompression()
        {
            var postcode = "NG1 5FS";

            IEnumerable <NearestPostcodeDto> nearestPostcodeDtos = new List <NearestPostcodeDto>()
            {
                new NearestPostcodeDto()
                {
                    Postcode         = "NG1 1AA",
                    DistanceInMetres = 1
                },
                new NearestPostcodeDto()
                {
                    Postcode         = "NG1 1AB",
                    DistanceInMetres = 2
                }
            };

            var compressedPostcodes = NearestPostcodeCompressor.CompressNearestPostcodeDtos(postcode, nearestPostcodeDtos);

            var decompressedPostcodes = NearestPostcodeCompressor.DecompressPreComputedPostcodes(compressedPostcodes);

            Assert.AreEqual(2, decompressedPostcodes.Count);
            Assert.AreEqual(1, decompressedPostcodes.FirstOrDefault(x => x.Postcode == "NG1 1AA").DistanceInMetres);
            Assert.AreEqual(2, decompressedPostcodes.FirstOrDefault(x => x.Postcode == "NG1 1AB").DistanceInMetres);
        }
예제 #2
0
        public void SetUp()
        {
            _repository = new Mock <IRepository>();

            _repository.SetupAllProperties();

            _nearestPostcodeDtos = new List <NearestPostcodeDto>()
            {
                new NearestPostcodeDto()
                {
                    Postcode         = "NG1 AA",
                    DistanceInMetres = 2
                },
                new NearestPostcodeDto()
                {
                    Postcode         = "NG1 AB",
                    DistanceInMetres = 3
                },
                new NearestPostcodeDto()
                {
                    Postcode         = "NG1 AC",
                    DistanceInMetres = 1
                },
                new NearestPostcodeDto()
                {
                    Postcode         = "NG1 AD",
                    DistanceInMetres = 4
                },
                new NearestPostcodeDto()
                {
                    Postcode         = "NG1 AE",
                    DistanceInMetres = 16095
                },
            };

            _repository.Setup(x => x.GetNearestPostcodesAsync(It.Is <string>(y => y == _postcode), It.IsAny <double>())).ReturnsAsync(_nearestPostcodeDtos);

            PreComputedNearestPostcodesDto preComputedNearestPostcodes = NearestPostcodeCompressor.CompressNearestPostcodeDtos(_postcode, _nearestPostcodeDtos);

            _repository.Setup(x => x.GetPreComputedNearestPostcodes(It.Is <string>(y => y == _postcode))).ReturnsAsync(preComputedNearestPostcodes);

            _applicationConfigSettings = new ApplicationConfig()
            {
                DefaultMaxNumberOfNearbyPostcodes    = 0,
                DefaultNearestPostcodeRadiusInMetres = 0
            };

            _applicationConfig = new Mock <IOptionsSnapshot <ApplicationConfig> >();
            _applicationConfig.SetupGet(x => x.Value).Returns(_applicationConfigSettings);
        }