예제 #1
0
        public async void CreateShortenUrlWithValidCodeOrEmpty(string code, string url)
        {
            var shortenUrlDTO = new ShortenUrlDTO {
                Code = code, Url = url
            };

            var ShortenUrlRepostory = new Mock <IShortenUrlRepository>();

            ShortenUrlRepostory.Setup(p => p.GetShortenUrl(It.IsAny <string>())).Returns(Task.FromResult <ShortenUrl>(null));
            ShortenUrlRepostory.Setup(p => p.InsertShortenUrl(It.IsAny <ShortenUrlDTO>()));

            var shortenUrlService = new ShortenUrlService(ShortenUrlRepostory.Object, new CodeService());

            var result = await shortenUrlService.CreateShortenUrl(shortenUrlDTO);

            if (string.IsNullOrEmpty(code))
            {
                Assert.NotEmpty(result.Code);
            }
            else
            {
                Assert.Equal(code, result.Code);
            }

            Assert.Equal(6, result.Code.Length);
        }
예제 #2
0
        private void button13_Click(object sender, EventArgs e)
        {
            //Given primary key of the db record on the shortening service
            int key = 89893;

            key = Int32.MaxValue;

            string url = ShortenUrlService.Encode(key);

            int resultkey = ShortenUrlService.DecodeURL(url);
        }
예제 #3
0
        public async void GetStatsByCodeNotFound()
        {
            var code = "ABC123";

            var ShortenUrlRepostory = new Mock <IShortenUrlRepository>();

            ShortenUrlRepostory.Setup(p => p.GetShortenUrl(It.IsAny <string>())).Returns(Task.FromResult <ShortenUrl>(null));
            var shortenUrlService = new ShortenUrlService(ShortenUrlRepostory.Object, new CodeService());

            await Assert.ThrowsAsync <NotFoundException>(() => shortenUrlService.GetStatsByCode(code));
        }
예제 #4
0
        public async void GetUrlByCodeValid()
        {
            var code = "ABC123";
            var url  = "http://google.com";

            var ShortenUrlRepostory = new Mock <IShortenUrlRepository>();

            ShortenUrlRepostory.Setup(p => p.GetShortenUrl(It.IsAny <string>())).Returns(Task.FromResult <ShortenUrl>(new ShortenUrl {
                Code = code, OriginalUrl = url
            }));
            var shortenUrlService = new ShortenUrlService(ShortenUrlRepostory.Object, new CodeService());

            var result = await shortenUrlService.GetUrlByCode(code);

            Assert.Equal(url, result);
        }
예제 #5
0
        public async void CreateShortenUrlExistingCode(string code, string url)
        {
            var shortenUrlDTO = new ShortenUrlDTO {
                Code = code, Url = url
            };

            var ShortenUrlRepostory = new Mock <IShortenUrlRepository>();

            ShortenUrlRepostory.Setup(p => p.GetShortenUrl(It.IsAny <string>())).Returns(Task.FromResult <ShortenUrl>(new ShortenUrl()));
            ShortenUrlRepostory.Setup(p => p.InsertShortenUrl(It.IsAny <ShortenUrlDTO>()));

            var shortenUrlService = new ShortenUrlService(ShortenUrlRepostory.Object, new CodeService());


            await Assert.ThrowsAsync <ConflictException>(() => shortenUrlService.CreateShortenUrl(shortenUrlDTO));
        }
예제 #6
0
        public async void GetStatsByCodeValid()
        {
            var createdAt = DateTime.UtcNow.AddDays(-5);
            var lastUsage = DateTime.UtcNow;

            var shortenUrl = new ShortenUrl {
                Code = "ABC123", CreatedAt = createdAt, LastUsage = lastUsage, ShortUrlId = 1, OriginalUrl = "http://google.com", UsageCount = 3
            };
            var expectedStats = new UrlStatsViewModel {
                CreatedAt = createdAt, LastUsage = lastUsage, UsageCount = 3
            };

            var ShortenUrlRepostory = new Mock <IShortenUrlRepository>();

            ShortenUrlRepostory.Setup(p => p.GetShortenUrl(It.IsAny <string>())).Returns(Task.FromResult <ShortenUrl>(shortenUrl));
            var shortenUrlService = new ShortenUrlService(ShortenUrlRepostory.Object, new CodeService());

            var result = await shortenUrlService.GetStatsByCode("ABC123");

            var expected    = JsonConvert.SerializeObject(expectedStats);
            var resultStats = JsonConvert.SerializeObject(result);

            Assert.Equal(expected, resultStats);
        }