Ejemplo n.º 1
0
        public static async Task <(AdminCreateRequestModel request, AdminCreateResponseModel response)> CreateUrl(this HttpClient client, string testAccessToken)
        {
            // Arrange


            // Create URL
            var data = new AdminCreateRequestModel()
            {
                AccessToken = testAccessToken,
                ExpiresUtc  = DateTime.Now.AddHours(1),
                MetaData    = "123",
                Url         = "https://www.google.com/?q=$key$"
            };

            var content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");

            var response1 = await client.PostAsync("/Admin/Create", content);

            response1.EnsureSuccessStatusCode();
            var response1String = await response1.Content.ReadAsStringAsync();

            var response1Object = JsonConvert.DeserializeObject <AdminCreateResponseModel>(response1String);

            Assert.True(response1Object.Success);
            Assert.True(!string.IsNullOrEmpty(response1Object.Key));
            Assert.True(response1Object.Key.Length > 4);
            Assert.True(response1Object.Url.ToUpperInvariant().Contains(response1Object.Key.ToUpperInvariant()));
            return(request : data, response : response1Object);
        }
Ejemplo n.º 2
0
        public async Task <AdminCreateResponseModel> Create([FromBody] AdminCreateRequestModel model)
        {
            var accessToken = await _navigationDatabase.GetAccessToken(model.AccessToken);

            if (accessToken == null || !accessToken.Enabled)
            {
                return new AdminCreateResponseModel()
                       {
                           Success = false
                       }
            }
            ;


            // Create a URL forward entry
            var data = Mapper.Map <ShortUrlModel>(model);

            data.CreatorAccessTokenId = accessToken.Id;
            var result = await _navigationDatabase.AddData(data);

            var ret = Mapper.Map <AdminCreateResponseModel>(data);

            ret.Url      = NavigateController.UrlKeyReplacementRegex.Replace(ret.Url, ret.Key);
            ret.ShortUrl = new Uri(Request.Scheme + "://" + Request.Host.Value + Request.PathBase + "/" + ret.Key).ToString();
            //ret.Key = result.Key;
            ret.Success = result.Success;

            return(ret);
        }
Ejemplo n.º 3
0
        private async Task CreateAccessDenied()
        {
            // Create URL
            var data = new AdminCreateRequestModel()
            {
                AccessToken = "INVALID",
                ExpiresUtc  = DateTime.Now.AddHours(1),
                MetaData    = "123",
                Url         = "https://www.google.com"
            };

            var content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");

            var response1 = await _client.PostAsync("/Admin/Create", content);

            response1.EnsureSuccessStatusCode();
            var response1String = await response1.Content.ReadAsStringAsync();

            var response1Object = JsonConvert.DeserializeObject <AdminCreateResponseModel>(response1String);

            Assert.False(response1Object.Success);
            Assert.True(string.IsNullOrEmpty(response1Object.Key));
            Assert.True(string.IsNullOrEmpty(response1Object.Key));
        }