Example #1
0
        public async Task DatabaseMustHaveRecordWithEqualShortUrl()
        {
            var sourceUrl = "https://google.com/";

            var url = await ShortenerService.GetShortenUrlAsync(sourceUrl, Guid.Empty);

            Assert.That(DatabaseContextStub.ShortLinks.Single().ShortUrl, Is.EqualTo(url));
        }
Example #2
0
        public async Task DatabaseMustHaveGeneratedShortLinks()
        {
            var sourceUrl = "https://google.com/";

            await ShortenerService.GetShortenUrlAsync(sourceUrl, Guid.Empty);

            Assert.That(DatabaseContextStub.ShortLinks, Is.Not.Empty);
        }
Example #3
0
        public async Task ShortUrlMustBeNonEmpty()
        {
            var sourceUrl = "https://google.com/";

            var url = await ShortenerService.GetShortenUrlAsync(sourceUrl, Guid.Empty);

            Assert.That(url, Is.Not.Empty);
        }
Example #4
0
        public async Task DatabaseMustHaveRecordWithEqualUserId()
        {
            var sourceUrl = "https://google.com/";
            var userId    = Guid.NewGuid();

            await ShortenerService.GetShortenUrlAsync(sourceUrl, userId);

            Assert.That(DatabaseContextStub.ShortLinks.Single().UserId, Is.EqualTo(userId));
        }
Example #5
0
        public async Task EqualSourceUrlsMustHaveDifferentShortUrls()
        {
            var sourceUrl = "https://google.com/";

            var url1 = await ShortenerService.GetShortenUrlAsync(sourceUrl, Guid.Empty);

            var url2 = await ShortenerService.GetShortenUrlAsync(sourceUrl, Guid.Empty);

            Assert.That(url1, Is.Not.EqualTo(url2));
        }
Example #6
0
        public async Task LargeSourceUrlProducesLessOrEqualSixLengthShortUrl()
        {
            var largeUrl = @"https://google.com/asdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweq
asdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweq
asdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweq
asdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweq
asdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweq
asdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweq
asdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweqasdweq";

            var url = await ShortenerService.GetShortenUrlAsync(largeUrl, Guid.Empty);

            Assert.That(url.Length, Is.LessThanOrEqualTo(6));
        }
Example #7
0
        public async Task <string> GetShortenUrlAsync(string url)
        {
            var hasUserId = HttpContext.Request.Cookies.ContainsKey(Definitions.UserIdCookieKey);

            Guid userId;

            if (hasUserId)
            {
                userId = Guid.Parse(HttpContext.Request.Cookies[Definitions.UserIdCookieKey]);
            }
            else
            {
                userId = Guid.NewGuid();
                HttpContext.Response.Cookies.Append(Definitions.UserIdCookieKey, userId.ToString());
            }

            return(await shortenerService.GetShortenUrlAsync(url, userId));
        }