public async Task Can_Get_TodoItem_ById()
        {
            // Arrange
            var person   = new Person();
            var todoItem = _todoItemFaker.Generate();

            todoItem.Owner = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var httpMethod = new HttpMethod("GET");
            var route      = $"/api/v1/todo-items/{todoItem.Id}";

            var description = new RequestProperties("Get TodoItem By Id", new Dictionary <string, string> {
                { "/todo-items/{id}", "TodoItem Id" }
            });

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, httpMethod, route);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(todoItem.Id, deserializedBody.Id);
            Assert.Equal(todoItem.Description, deserializedBody.Description);
            Assert.Equal(todoItem.Ordinal, deserializedBody.Ordinal);
        }
Ejemplo n.º 2
0
        public async Task Can_Filter_TodoItems()
        {
            // Arrange
            var person   = new Person();
            var todoItem = _todoItemFaker.Generate();

            todoItem.Ordinal = 999999;
            todoItem.Owner   = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var httpMethod = new HttpMethod("GET");
            var route      = $"/api/v1/todo-items?filter[ordinal]={todoItem.Ordinal}";

            var description = new RequestProperties("Filter TodoItems By Attribute", new Dictionary <string, string> {
                { "?filter[...]=", "Filter on attribute" }
            });

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, httpMethod, route);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = _fixture.GetService <IJsonApiDeSerializer>().DeserializeList <TodoItem>(body);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotEmpty(deserializedBody);

            foreach (var todoItemResult in deserializedBody)
            {
                Assert.Equal(todoItem.Ordinal, todoItemResult.Ordinal);
            }
        }
Ejemplo n.º 3
0
        public async Task Can_Filter_TodoItems_Using_Like_Operator()
        {
            // Arrange
            var todoItem = _todoItemFaker.Generate();

            todoItem.Ordinal = 999999;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();
            var substring = todoItem.Description.Substring(1, todoItem.Description.Length - 2);

            var httpMethod = new HttpMethod("GET");
            var route      = $"/api/v1/todo-items?filter[description]=like:{substring}";

            var description = new RequestProperties("Filter TodoItems Where Attribute Like", new Dictionary <string, string> {
                { "?filter[...]=", "Filter on attribute" }
            });

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, httpMethod, route);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = _fixture.GetService <IJsonApiDeSerializer>().DeserializeList <TodoItem>(body);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotEmpty(deserializedBody);

            foreach (var todoItemResult in deserializedBody)
            {
                Assert.Contains(substring, todoItem.Description);
            }
        }
Ejemplo n.º 4
0
 public IRequest BuildRequestFrom(RequestProperties properties)
 {
     return(new AddUserRequest
     {
         UserName = properties.GetString("user_name")
     });
 }
Ejemplo n.º 5
0
        public async Task Can_Get_TodoItem_WithOwner()
        {
            // Arrange
            var person   = new Person();
            var todoItem = _todoItemFaker.Generate();

            todoItem.Owner = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var httpMethod = new HttpMethod("GET");
            var route      = $"/api/v1/todo-items/{todoItem.Id}?include=owner";

            var description = new RequestProperties("Get TodoItem By Id", new Dictionary <string, string> {
                { "/todo-items/{id}", "TodoItem Id" },
                { "?include={relationship}", "Included Relationship" }
            });

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, httpMethod, route);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = (TodoItem)_fixture.GetService <IJsonApiDeSerializer>().Deserialize(body);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(person.Id, deserializedBody.OwnerId);
            Assert.Equal(todoItem.Id, deserializedBody.Id);
            Assert.Equal(todoItem.Description, deserializedBody.Description);
            Assert.Equal(todoItem.Ordinal, deserializedBody.Ordinal);
            Assert.Equal(todoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
            Assert.Equal(null, deserializedBody.AchievedDate);
        }
Ejemplo n.º 6
0
        public bool executeCode(string serviceName, string parameters)
        {
            request = new RequestEngine();
            Console.WriteLine("Service Name: " + serviceName);
            RequestProperties headers = new RequestProperties();

            headers.setMethod("POST");
            string endpoint = "/api/v/1/code/" + Util.getSystemKey() + "/" + this.serviceName + "";

            headers.setEndpoint(endpoint);
            headers.setBody(parameters);

            request.setHeaders(headers);

            PlatformResponse <string> result = request.executePost();

            if (result.getError())
            {
                Util.logger("CBUserTask", "User call failed: " + result.getData(), true);
                return(false);
            }
            else
            {
                Console.WriteLine((string)result.getData());

                return(true);
            }
        }
Ejemplo n.º 7
0
        public async Task Can_Paginate_TodoItems()
        {
            // Arrange
            const int expectedEntitiesPerPage = 2;
            var       person   = new Person();
            var       todoItem = _todoItemFaker.Generate();

            todoItem.Owner = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var httpMethod = new HttpMethod("GET");
            var route      = $"/api/v1/todo-items?page[size]={expectedEntitiesPerPage}";

            var description = new RequestProperties("Paginate TodoItems", new Dictionary <string, string> {
                { "?page[size]=", "Number of entities per page" }
            });

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, httpMethod, route);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = _fixture.GetService <IJsonApiDeSerializer>().DeserializeList <TodoItem>(body);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotEmpty(deserializedBody);
            Assert.True(deserializedBody.Count <= expectedEntitiesPerPage);
        }
Ejemplo n.º 8
0
        public async Task Can_Delete_TodoItem()
        {
            // Arrange
            var person = new Person();

            _context.People.Add(person);
            _context.SaveChanges();

            var todoItem = _todoItemFaker.Generate();

            todoItem.Owner = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var httpMethod = new HttpMethod("DELETE");
            var route      = $"/api/v1/todo-items/{todoItem.Id}";

            var request = new HttpRequestMessage(httpMethod, route);

            request.Content = new StringContent(string.Empty);
            request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");

            var description = new RequestProperties("Delete TodoItem");

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, request);

            // Assert
            Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
            Assert.Null(_context.TodoItems.FirstOrDefault(t => t.Id == todoItem.Id));
        }
Ejemplo n.º 9
0
        public bool authWithAnonUser(string uri, int timeout)
        {
            request = new RequestEngine();
            Console.WriteLine("Req URI: " + uri);
            RequestProperties headers = new RequestProperties();

            headers.setMethod("POST");
            headers.setEndpoint("/api/v/1/user/anon");
            headers.setUri(uri);
            headers.setTimeout(timeout);

            request.setHeaders(headers);

            PlatformResponse <string> result = request.execute();

            if (result.getError())
            {
                Util.logger("CBUserTask", "User call failed: " + result.getData(), true);
                ClearBlade.setInitError(true);
                return(false);
            }
            else
            {
                JObject json = JObject.Parse((string)result.getData());
                setAuthToken((string)json["user_token"]);
                return(true);
            }
        }
Ejemplo n.º 10
0
        public bool logout(string uri)
        {
            request = new RequestEngine();
            Console.WriteLine("Req URI: " + uri);
            RequestProperties headers = new RequestProperties();

            headers.setMethod("POST");
            headers.setEndpoint("/api/v/1/user/logout");
            headers.setUri(uri);


            request.setHeaders(headers);

            PlatformResponse <string> result = request.execute();

            if (result.getError())
            {
                Util.logger("CBUserTask", "User call failed: " + result.getData(), true);
                ClearBlade.setInitError(true);
                return(false);
            }
            else
            {
                setAuthToken(null);
                Console.WriteLine("User Logged out");
                return(true);
            }
        }
Ejemplo n.º 11
0
        public bool authWithCurrentUser(string password, string uri)
        {
            //get auth token with current user
            request = new RequestEngine();

            string email = this.getEmail();
            string body  = "{\"email\":\"" + email + "\",\"password\":\"" + password + "\"}";


            RequestProperties headers = new RequestProperties();

            headers.setMethod("POST");
            headers.setEndpoint("/api/v/1/user/auth");
            headers.setUri(uri);
            headers.setBody(body);

            request.setHeaders(headers);
            Console.WriteLine("In Auth with current user");
            PlatformResponse <string> result = request.executePost();

            if (result.getError())
            {
                Util.logger("CBUserTask", "User call failed: " + result.getData(), true);
                ClearBlade.setInitError(true);
                Console.WriteLine("Some error in result");
                return(false);
            }
            else
            {
                JObject json = JObject.Parse((string)result.getData());
                setAuthToken((string)json["user_token"]);
                return(true);
            }
        }
Ejemplo n.º 12
0
        private RequestProperties ProcessRequestParams(NamedValueSet requestParams)
        {
            var result = new RequestProperties();

            //NamedValueSet requestSettings = new NamedValueSet(requestParams);
            if (requestParams != null)
            {
                ICollection <NamedValue> coll = requestParams.ToColl();
                foreach (NamedValue nv in coll)
                {
                    try
                    {
                        switch (nv.Name.ToLower())
                        {
                        default:
                            Logger.LogDebug(
                                "{0}: Parameter {1}='{2}' ignored",
                                "MdpSimulator", nv.Name, nv.ValueString);
                            break;
                        }
                    }
                    catch (Exception excp)
                    {
                        Logger.Log(excp);
                    }
                }
            }
            return(result);
        }
        public async Task Can_Get_TodoItems()
        {
            // Arrange
            const int expectedEntitiesPerPage = 5;
            var       person   = new Person();
            var       todoItem = _todoItemFaker.Generate();

            todoItem.Owner = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var httpMethod = new HttpMethod("GET");
            var route      = "/api/v1/todo-items";

            var description = new RequestProperties("Get TodoItems");

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, httpMethod, route);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = JsonApiDeSerializer.DeserializeList <TodoItem>(body, _jsonApiContext);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotEmpty(deserializedBody);
            Assert.True(deserializedBody.Count <= expectedEntitiesPerPage);
        }
Ejemplo n.º 14
0
        private void InvokeWebMethod()
        {
            MethodProperty currentMethodProperty = GetCurrentMethodProperty();

            if (currentMethodProperty != null)
            {
                HttpWebClientProtocol proxy      = currentMethodProperty.GetProxyProperty().GetProxy();
                RequestProperties     properties = new RequestProperties(proxy);
                try
                {
                    MethodInfo  method        = currentMethodProperty.GetMethod();
                    System.Type declaringType = method.DeclaringType;
                    WSSWebRequest.RequestTrace = properties;
                    object[] parameters = currentMethodProperty.ReadChildren() as object[];
                    object   result     = method.Invoke(proxy, BindingFlags.Public, null, parameters, null);
                    treeOutput.Nodes.Clear();
                    MethodProperty property2 = new MethodProperty(currentMethodProperty.GetProxyProperty(), method, result, parameters);
                    property2.RecreateSubtree(null);
                    treeOutput.Nodes.Add(property2.TreeNode);
                    treeOutput.ExpandAll();
                }
                finally
                {
                    WSSWebRequest.RequestTrace = null;
                    propRequest.SelectedObject = properties;
                    richRequest.Text           = properties.requestPayLoad;
                    richResponse.Text          = properties.responsePayLoad;
                }
            }
        }
Ejemplo n.º 15
0
        public void CloneCopiesAllTheProperties()
        {
            RequestProperties item = CommonTestHelpers.Factory.CreateRequestProperties();

            RequestProperties clone = item.Clone();

            Assert.AreEqual(JsonSerializer.Serialize(item), JsonSerializer.Serialize(clone));
        }
 public void Resquest_properties_should_have_host_type_referrer_url()
 {
     _requestProperties = new RequestProperties("GET", "ojas/index.html", @"http://*****:*****@"http://localhost:8080");
     _requestProperties.Type.Should().Be("GET");
     _requestProperties.Url.Should().Be("ojas/index.html");
     _requestProperties.Referer.Should().Be("hello");
 }
Ejemplo n.º 17
0
        public async Task Can_Patch_TodoItemWithNullable()
        {
            // Arrange
            var person = new Person();

            _context.People.Add(person);
            _context.SaveChanges();

            var todoItem = _todoItemFaker.Generate();

            todoItem.AchievedDate = System.DateTime.Now;
            todoItem.Owner        = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var newTodoItem = _todoItemFaker.Generate();

            newTodoItem.AchievedDate = System.DateTime.Now.AddDays(2);

            var content = new
            {
                data = new
                {
                    type       = "todo-items",
                    attributes = new Dictionary <string, object>()
                    {
                        { "description", newTodoItem.Description },
                        { "ordinal", newTodoItem.Ordinal },
                        { "created-date", newTodoItem.CreatedDate },
                        { "achieved-date", newTodoItem.AchievedDate }
                    }
                }
            };

            var httpMethod = new HttpMethod("PATCH");
            var route      = $"/api/v1/todo-items/{todoItem.Id}";

            var request = new HttpRequestMessage(httpMethod, route);

            request.Content = new StringContent(JsonConvert.SerializeObject(content));
            request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");

            var description = new RequestProperties("Patch TodoItem");

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, request);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = (TodoItem)_fixture.GetService <IJsonApiDeSerializer>().Deserialize(body);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(newTodoItem.Description, deserializedBody.Description);
            Assert.Equal(newTodoItem.Ordinal, deserializedBody.Ordinal);
            Assert.Equal(newTodoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
            Assert.Equal(newTodoItem.AchievedDate.GetValueOrDefault().ToString("G"), deserializedBody.AchievedDate.GetValueOrDefault().ToString("G"));
        }
Ejemplo n.º 18
0
        public void FormDataIsNotNull()
        {
            RequestProperties item = new RequestProperties(new RequestProperties.CreateOptions
            {
                FormData = null
            });

            Assert.IsNotNull(item.FormData);
        }
Ejemplo n.º 19
0
        public void ServerVariablesIsNotNull()
        {
            RequestProperties item = new RequestProperties(new RequestProperties.CreateOptions
            {
                ServerVariables = null
            });

            Assert.IsNotNull(item.ServerVariables);
        }
Ejemplo n.º 20
0
        public void NullHeaderKeysAreNotCopied()
        {
            RequestProperties item = new RequestProperties(new RequestProperties.CreateOptions
            {
                Headers = null
            });

            Assert.IsNotNull(item.Headers);
        }
Ejemplo n.º 21
0
        public void CookiesIsNotNull()
        {
            RequestProperties item = new RequestProperties(new RequestProperties.CreateOptions
            {
                Cookies = null
            });

            Assert.IsNotNull(item.Cookies);
        }
Ejemplo n.º 22
0
        public async Task Can_Post_TodoItem()
        {
            // Arrange
            var person = new Person();

            _context.People.Add(person);
            _context.SaveChanges();

            var todoItem = _todoItemFaker.Generate();
            var content  = new
            {
                data = new
                {
                    type       = "todo-items",
                    attributes = new Dictionary <string, object>()
                    {
                        { "description", todoItem.Description },
                        { "ordinal", todoItem.Ordinal },
                        { "created-date", todoItem.CreatedDate }
                    },
                    relationships = new
                    {
                        owner = new
                        {
                            data = new
                            {
                                type = "people",
                                id   = person.Id.ToString()
                            }
                        }
                    }
                }
            };

            var httpMethod = new HttpMethod("POST");
            var route      = $"/api/v1/todo-items";

            var request = new HttpRequestMessage(httpMethod, route);

            request.Content = new StringContent(JsonConvert.SerializeObject(content));
            request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");

            var description = new RequestProperties("Post TodoItem");

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, request);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = (TodoItem)_fixture.GetService <IJsonApiDeSerializer>().Deserialize(body);

            // Assert
            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal(todoItem.Description, deserializedBody.Description);
            Assert.Equal(todoItem.CreatedDate.ToString("G"), deserializedBody.CreatedDate.ToString("G"));
            Assert.Equal(null, deserializedBody.AchievedDate);
        }
Ejemplo n.º 23
0
        public void QueryStringIsNotNull()
        {
            RequestProperties item = new RequestProperties(new RequestProperties.CreateOptions
            {
                QueryString = null
            });

            Assert.IsNotNull(item.QueryString);
        }
Ejemplo n.º 24
0
        public void BuildRequest_PassesPropertiesToRegisteredBuilder()
        {
            var builder = new TestRequestBuilder();

            var propertiesToPass = new RequestProperties();

            RequestBuilder.Instance.Register("REQ5", () => builder);

            RequestBuilder.Instance.BuildRequest("req5", propertiesToPass);

            propertiesToPass.Should().BeSameAs(builder.PassedProperties);
        }
Ejemplo n.º 25
0
        /// <summary>
        ///		Create a new HTTP request.
        /// </summary>
        /// <param name="properties">
        ///		The request properties.
        /// </param>
        protected HttpRequestBase(ImmutableDictionary <string, object> properties)
        {
            if (properties == null)
            {
                throw new ArgumentNullException(nameof(properties));
            }

            _properties = properties;

            EnsurePropertyType <Uri>(nameof(Uri));
            EnsurePropertyType <bool>(nameof(IsUriTemplate));
        }
        public async Task Can_Patch_TodoItem()
        {
            // Arrange
            var person = new Person();

            _context.People.Add(person);
            _context.SaveChanges();

            var todoItem = _todoItemFaker.Generate();

            todoItem.Owner = person;
            _context.TodoItems.Add(todoItem);
            _context.SaveChanges();

            var newTodoItem = _todoItemFaker.Generate();

            var content = new
            {
                data = new
                {
                    type       = "todo-items",
                    attributes = new
                    {
                        description = newTodoItem.Description,
                        ordinal     = newTodoItem.Ordinal
                    }
                }
            };

            var httpMethod = new HttpMethod("PATCH");
            var route      = $"/api/v1/todo-items/{todoItem.Id}";

            var request = new HttpRequestMessage(httpMethod, route);

            request.Content = new StringContent(JsonConvert.SerializeObject(content));
            request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.api+json");

            var description = new RequestProperties("Patch TodoItem");

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, request);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = (TodoItem)JsonApiDeSerializer.Deserialize(body, _jsonApiContext);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(newTodoItem.Description, deserializedBody.Description);
            Assert.Equal(newTodoItem.Ordinal, deserializedBody.Ordinal);
        }
Ejemplo n.º 27
0
        public static WebRequestProperties Create(HttpRequest request)
        {
            WebRequestProperties result = new WebRequestProperties();

            if (request == null)
            {
                return(result);
            }

            result.StartDateTime = DateTime.UtcNow;
            result.UserAgent     = request.UserAgent;
            result.Url           = request.Url;
            result.HttpMethod    = request.HttpMethod;
            result.HttpReferer   = request.UrlReferrer?.AbsolutePath;
            result.RemoteAddress = request.UserHostAddress;
            result.MachineName   = GetMachineName(request);

            RequestProperties requestProperties = new RequestProperties();

            result.Request = requestProperties;

            var headers = DataParser.ToDictionary(request.Unvalidated.Headers);

            headers = FilterHeaders(headers);

            var queryString     = DataParser.ToDictionary(request.Unvalidated.QueryString);
            var formData        = DataParser.ToDictionary(request.Unvalidated.Form);
            var serverVariables = DataParser.ToDictionary(request.ServerVariables);

            serverVariables = FilterServerVariables(serverVariables);

            var cookies = DataParser.ToDictionary(request.Unvalidated.Cookies);

            requestProperties.Headers         = headers;
            requestProperties.QueryString     = queryString;
            requestProperties.FormData        = formData;
            requestProperties.ServerVariables = serverVariables;
            requestProperties.Cookies         = cookies;
            string inputStream = null;

            if (InternalHelpers.ShouldLogInputStream(headers))
            {
                inputStream = ReadInputStream(request);
            }

            requestProperties.InputStream = inputStream;

            return(result);
        }
Ejemplo n.º 28
0
        public async Task Server_Sends_Correct_ContentType_Header()
        {
            // arrange
            var builder = new WebHostBuilder()
                          .UseStartup <Startup>();
            var httpMethod  = new HttpMethod("GET");
            var route       = "/api/v1/todo-items";
            var description = new RequestProperties("Server Sends Correct Content Type Header");
            var server      = new TestServer(builder);
            var client      = server.CreateClient();
            var request     = new HttpRequestMessage(httpMethod, route);

            // act
            var response = await client.SendAsync(request);

            // assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal("application/vnd.api+json", response.Content.Headers.ContentType.ToString());
        }
Ejemplo n.º 29
0
        public async Task Can_Sort_TodoItems_By_Ordinal_Descending()
        {
            // Arrange
            _context.TodoItems.RemoveRange(_context.TodoItems);

            const int numberOfItems = 5;
            var       person        = new Person();

            for (var i = 1; i < numberOfItems; i++)
            {
                var todoItem = _todoItemFaker.Generate();
                todoItem.Ordinal = i;
                todoItem.Owner   = person;
                _context.TodoItems.Add(todoItem);
            }
            _context.SaveChanges();

            var httpMethod = new HttpMethod("GET");
            var route      = $"/api/v1/todo-items?sort=-ordinal";

            var description = new RequestProperties("Sort TodoItems Descending", new Dictionary <string, string> {
                { "?sort=-attr", "Sort on attribute" }
            });

            // Act
            var response = await _fixture.MakeRequest <TodoItem>(description, httpMethod, route);

            var body = await response.Content.ReadAsStringAsync();

            var deserializedBody = _fixture.GetService <IJsonApiDeSerializer>().DeserializeList <TodoItem>(body);

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotEmpty(deserializedBody);

            long priorOrdinal = numberOfItems + 1;

            foreach (var todoItemResult in deserializedBody)
            {
                Assert.True(todoItemResult.Ordinal < priorOrdinal);
                priorOrdinal = todoItemResult.Ordinal;
            }
        }
Ejemplo n.º 30
0
        public void NullKeyValuesAreNotCopied(string keyName)
        {
            var options = new RequestProperties.CreateOptions
            {
                Headers         = CommonTestHelpers.GenerateList(keyName, 2),
                Cookies         = CommonTestHelpers.GenerateList(keyName, 2),
                QueryString     = CommonTestHelpers.GenerateList(keyName, 2),
                FormData        = CommonTestHelpers.GenerateList(keyName, 2),
                ServerVariables = CommonTestHelpers.GenerateList(keyName, 2),
                Claims          = CommonTestHelpers.GenerateList(keyName, 2)
            };

            RequestProperties item = new RequestProperties(options);

            Assert.AreEqual(0, item.Headers.Count());
            Assert.AreEqual(0, item.Cookies.Count());
            Assert.AreEqual(0, item.QueryString.Count());
            Assert.AreEqual(0, item.FormData.Count());
            Assert.AreEqual(0, item.ServerVariables.Count());
            Assert.AreEqual(0, item.Claims.Count());
        }
Ejemplo n.º 31
0
 private void InvokeWebMethod()
 {
     MethodProperty currentMethodProperty = GetCurrentMethodProperty();
     if (currentMethodProperty != null)
     {
         HttpWebClientProtocol proxy = currentMethodProperty.GetProxyProperty().GetProxy();
         RequestProperties properties = new RequestProperties(proxy);
         try
         {
             MethodInfo method = currentMethodProperty.GetMethod();
             System.Type declaringType = method.DeclaringType;
             WSSWebRequest.RequestTrace = properties;
             object[] parameters = currentMethodProperty.ReadChildren() as object[];
             object result = method.Invoke(proxy, BindingFlags.Public, null, parameters, null);
             treeOutput.Nodes.Clear();
             MethodProperty property2 = new MethodProperty(currentMethodProperty.GetProxyProperty(), method, result, parameters);
             property2.RecreateSubtree(null);
             treeOutput.Nodes.Add(property2.TreeNode);
             treeOutput.ExpandAll();
         }
         finally
         {
             WSSWebRequest.RequestTrace = null;
             propRequest.SelectedObject = properties;
             richRequest.Text = properties.requestPayLoad;
             richResponse.Text = properties.responsePayLoad;
         }
     }
 }
Ejemplo n.º 32
0
        /// <summary>
        ///   Check to see if the request is allowed.
        /// </summary>
        /// <param name = "session">
        ///   The session.
        /// </param>
        /// <param name = "rule">
        ///   The rule that has this action.
        /// </param>
        /// <returns>
        ///   True to continue processing, or false if the request should be blocked.
        /// </returns>
        public bool BeforeRequest(Session session, Rule rule)
        {
            var requestProperties = new RequestProperties(session.fullUrl, session.oRequest.headers["Referer"],
                                                          session.oRequest.headers["Accept"]);

            UriPattern matchedPattern;
            var result = _patternList.Match(requestProperties, out matchedPattern);
            if (result == UriPatternMatchType.Match)
            {
                session.oRequest.FailSession(204, "Blocked By AdBlock", String.Empty);
                RuleLog.Current.AddRule(rule, session, String.Format("AdBlock ({0})", matchedPattern.Pattern));
                return false;
            }

            if (result == UriPatternMatchType.Exception)
            {
                RuleLog.Current.AddRule(rule, session, String.Format("AdBlock Except({0})", matchedPattern.Pattern));
            }

            return true;
        }