Esempio n. 1
0
        public void FakeApiInfo()
        {
            var context = new ApimContext(api: new Api() { Id = "foo", Name = "App" });

            Assert.Equal("foo",context.Api.Id);
            Assert.Equal("App", context.Api.Name);
        }
        public void RequestPolicyWithBody()
        {
            // Assert
            var requestMessage = new HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org/foo"),
                Content = new StringContent("Hello World!")
            };

            var variables = new Dictionary<string, object>()
            {
                { "message-id","xxxyyy"}
            };

            var context = new ApimContext(requestMessage: requestMessage, variables: variables);

            // Act
            string policyResult = SendRequestToEventHub(context);

            //Assert
            Assert.Equal("request:xxxyyy\n"
                                        + "GET /foo HTTP/1.1\r\n"
                                        + "Host: example.org\r\n"
                                        + "Content-Type: text/plain; charset=utf-8\r\n"
                                        + "Content-Length: 12\r\n"
                                        + "\r\n"
                                        + "Hello World!", policyResult);
        }
        public void MessageTextStartsWithMethodAndUrl()
        {
            var context = new ApimContext();
            var message = CreateSlackMessage(context);

            var jobject = JObject.Parse(message);
            Assert.StartsWith("GET /", (string)jobject.Property("text"));
        }
        public void MessageIncludesStaticUserName()
        {
            var context = new ApimContext(product: new Product() { Name = "foo" });
            var message = CreateSlackMessage(context);

            var jobject = JObject.Parse(message);
            Assert.Equal("APIM Alert for foo", (string)jobject.Property("username"));
        }
Esempio n. 5
0
        public void AccessSendRequestBodySuccess()
        {
            var request = new System.Net.Http.HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org/")
            };
            var token = new JObject(new JProperty("active", true));
            var context = new ApimContext(requestMessage: request);
            context.Variables["tokenstate"] = new Response(new HttpResponseMessage() { Content = new StringContent(token.ToString()) } );

            Assert.False((bool)((IResponse)context.Variables["tokenstate"]).Body.As<JObject>()["active"] == false);
        }
 public string CreateSlackMessage(ApimContext context)
 {
     return new JObject(
                         new JProperty("username", $"APIM Alert for {context.Product.Name}"),
                         new JProperty("icon_emoji", ":ghost:"),
                         new JProperty("text", String.Format("{0} {1}\nHost: {2}\n{3} {4}\n User: {5}",
                                                 context.Request.Method,
                                                 context.Request.Url.Path + context.Request.Url.QueryString,
                                                 context.Request.Url.Host,
                                                 context.Response.StatusCode,
                                                 context.Response.StatusReason,
                                                 context.User.Email
                                                 ))
                         ).ToString();
 }
        public void RequestPolicyWithoutBody()
        {
            // Assert
            var requestMessage = new HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org/foo")
            };

            var variables = new Dictionary<string, object>()
            {
                { "message-id","xxxyyy"}
            };

            var context = new ApimContext(requestMessage: requestMessage, variables: variables );

            // Act
            string policyResult = SendRequestToEventHub(context);

            //Assert
            Assert.Equal("request:xxxyyy\n"
                                        + "GET /foo HTTP/1.1\r\n"
                                        + "Host: example.org\r\n"
                                        + "\r\n", policyResult);
        }
        public void ResponsePolicyWithBody()
        {
            // Assert
            var responseMessage = new HttpResponseMessage()
            {
                Content = new StringContent("Hello World!")
            };

            var variables = new Dictionary<string, object>()
            {
                { "message-id","xxxyyy"}
            };

            var context = new ApimContext(responseMessage: responseMessage, variables: variables);

            // Act
            string policyResult = SendResponseToEventHub(context);

            //Assert
            Assert.Equal("response:xxxyyy\n"
                                        + "HTTP/1.1 200 OK\r\n"
                                        + "Content-Type: text/plain; charset=utf-8\r\n"
                                        + "Content-Length: 12\r\n"
                                        + "\r\n"
                                        + "Hello World!", policyResult);
        }
        public void ResponsePolicyWithoutBody()
        {
            // Assert
            var responseMessage = new HttpResponseMessage()
            {
            };

            var variables = new Dictionary<string, object>()
            {
                { "message-id","xxxyyy"}
            };

            var context = new ApimContext(responseMessage: responseMessage, variables: variables);

            // Act
            string policyResult = SendResponseToEventHub(context);

            //Assert
            Assert.Equal("response:xxxyyy\n"
                                        + "HTTP/1.1 200 OK\r\n"
                                        + ""
                                        + "\r\n", policyResult);
        }
Esempio n. 10
0
        public void FakeProductInfo()
        {
            var context = new ApimContext(product: new Product()
                {   Id = "foo",
                    Name = "App",
                    Apis = new List<IApi> { new Api()},
                    SubscriptionRequired = true
                });

            Assert.Equal("foo", context.Product.Id);
            Assert.Equal("App", context.Product.Name);
            Assert.Equal(1, context.Product.Apis.Count());
        }
Esempio n. 11
0
        public void IfHeaderEquals()
        {
            var request = new System.Net.Http.HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org/")
            };
            request.Headers.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
            var context = new ApimContext(requestMessage: request);

            Assert.True(context.Request.Headers.GetValueOrDefault("Accept","").Contains("application/xml"));
        }
Esempio n. 12
0
        public void GetAuthParameter()
        {
            var request = new System.Net.Http.HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org/")
            };
            var token = "xyzpq";
            request.Headers.Authorization = new AuthenticationHeaderValue("bearer",token);
            var context = new ApimContext(requestMessage: request);

            Assert.Equal(token,context.Request.Headers.GetValueOrDefault("Authorization","scheme param").Split(' ').Last());
        }