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()); }
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); }