示例#1
0
        public void Generate_GeneratesUniqueIds_IfNormalSettings()
        {
            ShortIdGenerator sut = new ShortIdGenerator();
            List <string>    ids = new List <string>();

            for (int i = 0; i < 1000; i++)
            {
                string id = sut.Generate();
                ids.Add(id);
            }

            Assert.AreEqual(ids.Count, ids.Distinct().Count());
        }
示例#2
0
        public async Task <string> GetOrCreateShortCodeAsync(string longUrl)
        {
            var shortCode = await _repository.GetShortCodeAsync(longUrl);

            if (shortCode == null)
            {
                do
                {
                    shortCode = ShortIdGenerator.CreateId();
                }while ((await _repository.GetLongUrlAsync(shortCode)) != null);

                await _repository.SetShortCodeAsync(longUrl, shortCode);
            }
            return(shortCode);
        }