Ejemplo n.º 1
0
        public async Task <IGkamaUrl> AddUrlAsync(GkamaUrl url)
        {
            await _context.Urls
            .AddAsync(url);

            await _context.SaveChangesAsync();

            return(url);
        }
Ejemplo n.º 2
0
        public async Task AddShortUrl_AlreadyExists_ViolatesUniqueness(int id)
        {
            var url = new GkamaUrl()
            {
                Id       = id,
                Target   = "https://www.google.com/maps",
                ShortUrl = "https://gkama.it/5"
            };

            await Assert.ThrowsAsync <InvalidOperationException>(() => _repo.AddUrlAsync(url));
        }
Ejemplo n.º 3
0
        public async Task DeleteUrlAsync_AddThenDelete(int id)
        {
            var url = new GkamaUrl()
            {
                Id     = id,
                Target = "https://google.com"
            };

            await _repo.AddUrlAsync(url);

            await _repo.DeleteUrlAsync(id);

            Assert.Null(await _repo.GetUrlAsync(id));
        }
Ejemplo n.º 4
0
        public async Task <IGkamaUrl> AddUrlAsync(string target)
        {
            var url = new GkamaUrl()
            {
                Target = target
            };

            await _context.Urls
            .AddAsync(url);

            await _context.SaveChangesAsync();

            return(url);
        }
Ejemplo n.º 5
0
        public async Task <IGkamaUrl> AddUrlNotExistAsync(string target)
        {
            if (await GetGkamaUrlsQuery()
                .FirstOrDefaultAsync(x => x.Target == target) != null)
            {
                throw new UrlException(HttpStatusCode.Found,
                                       $"url with target='{target}' already exists");
            }

            var url = new GkamaUrl()
            {
                Target = target
            };

            await _context.Urls
            .AddAsync(url);

            await _context.UrlMetadata
            .AddAsync(url.Target.ParseUri());

            await _context.SaveChangesAsync();

            return(url);
        }