public async Task <IHttpActionResult> CreateNewShortUrl([FromUri] string nativeUrl)
        {
            //ToDo серверная валидация на корректный url
            var link = await LinksGenerator.GetNewShortLinkAsync(nativeUrl);

            return(Ok(link));
        }
Esempio n. 2
0
        public async void GetRandomSymbolsTest()
        {
            int linksCount       = 10000;
            var uniqueShortLinks = new HashSet <string>();

            for (int i = 0; i < linksCount; i++)
            {
                var shortLinks = await LinksGenerator.GetNewShortLinkAsync("http://testurl.com");

                uniqueShortLinks.Add(shortLinks);
                Assert.IsNotNull(shortLinks);
            }
            var uniqueShortLinkCount = uniqueShortLinks.Distinct().Count();

            Assert.AreEqual(linksCount, uniqueShortLinkCount);
        }
Esempio n. 3
0
        public async Task WpLzhEnumPageLinksTest()
        {
            var site = await WpLzhSiteAsync;
            var gen  = new LinksGenerator(site, site.SiteInfo.MainPage)
            {
                PaginationSize = 20
            };

            Output.WriteLine(gen.PageTitle);
            var links = await gen.EnumItemsAsync().Select(stub => stub.Title).ToList();

            var linkPages = await gen.EnumPagesAsync().Select(p => p.Title).ToList();

            ShallowTrace(links);
            Assert.Contains("文言維基大典", links);
            Assert.Contains("幫助:凡例", links);
            Assert.Contains("維基大典:卓著", links);
            // The items taken from generator are unordered.
            Assert.Equal(links.ToHashSet(), linkPages.ToHashSet());
        }
Esempio n. 4
0
        public void ComplexTest()
        {
            var routeRelations = new Dictionary <string, List <string> >();
            var payload        = new ModelSample()
            {
                Id = 1, Name = "test", Price = 5.0, EMailAddress = "*****@*****.**"
            };

            routeRelations.Add("GET/api/{id}?query={query}", new List <string>()
            {
                "get-query"
            });
            routeRelations.Add("PUT/api/prod/{id}", new List <string>()
            {
                "put-prod"
            });
            var links = LinksGenerator.Generate(_actionConfiguration, routeRelations, payload);

            var serialized = JsonConvert.SerializeObject(links);

            Assume.That(serialized, Is.EqualTo("[{\"rel\":[\"get-query\",\"__query\"],\"href\":\"http://localhost/api/1?query=:query\"}]"));
        }
 public GenreHATEOASAttribute(LinksGenerator linksGenerator)
 {
     this.linksGenerator = linksGenerator;
 }