private static void CommonHttpRequestTest(string httpMethod)
        {
            Mock <HttpRequestBase> mckHttpRequest = new Mock <HttpRequestBase>();

            mckHttpRequest.SetupGet(x => x.HttpMethod).Returns(httpMethod);
            NameValueCollection querystring = new NameValueCollection();

            querystring[Parameters.ClientId]     = "123";
            querystring[Parameters.ClientSecret] = "secret";
            querystring[Parameters.ResponseType] = Parameters.ResponseTypeValues.AuthorizationCode;
            querystring[Parameters.State]        = "state";
            querystring[Parameters.Scope]        = "create-member view-clients";
            querystring[Parameters.RedirectUri]  = "http://www.mysite.com/callback";
            if (httpMethod.ToUpperInvariant() == "GET")
            {
                mckHttpRequest.SetupGet(x => x.QueryString).Returns(querystring);
            }
            else if (httpMethod.ToUpperInvariant() == "POST")
            {
                mckHttpRequest.SetupGet(x => x.Form).Returns(querystring);
            }

            IContextBuilder <IAuthorizationContext> builder = new AuthorizationContextBuilder();
            IAuthorizationContext context = builder.FromHttpRequest(mckHttpRequest.Object);

            Assert.AreEqual("123", context.Client.ClientId);
            Assert.AreEqual("secret", context.Client.ClientSecret);
            Assert.AreEqual(Parameters.ResponseTypeValues.AuthorizationCode, context.ResponseType);
            Assert.AreEqual("state", context.State);
            Assert.AreEqual(new Uri("http://www.mysite.com/callback", UriKind.Absolute), context.RedirectUri);
            Assert.AreEqual(new string[] { "create-member", "view-clients" }, context.Scope);
        }
        public void TestInvalidRedirectUriFormat()
        {
            IContextBuilder <IAuthorizationContext> builder = new AuthorizationContextBuilder();
            string url = CreateUrl("authorization_code", "1234432", "secret", "create-user manage-clients", "mystate", "/callback");

            builder.FromUri(url);
        }
        public void CreateContextFromUriWithoutScope()
        {
            string url = CreateUrl("", "", "", null, "", null);

            IContextBuilder <IAuthorizationContext> builder = new AuthorizationContextBuilder();
            IAuthorizationContext context = builder.FromUri(url);

            Assert.IsNull(context.RedirectUri);
            Assert.AreEqual(new string[0], context.Scope);
        }
        public void CreateContextFromUri()
        {
            string url = CreateUrl("authorization_code", "1234432", "secret", "create-user manage-clients", "mystate", "http://www.mysite.com/callback");

            IContextBuilder <IAuthorizationContext> builder = new AuthorizationContextBuilder();
            IAuthorizationContext context = builder.FromUri(url);

            Assert.AreEqual("authorization_code", context.ResponseType);
            Assert.AreEqual("1234432", context.Client.ClientId);
            Assert.AreEqual("secret", context.Client.ClientSecret);
            Assert.AreEqual(new string[] { "create-user", "manage-clients" }, context.Scope);
            Assert.AreEqual(new Uri("http://www.mysite.com/callback"), context.RedirectUri);
        }
        private static IContextBuilder <IAuthorizationContext> GetBuilder()
        {
            IContextBuilder <IAuthorizationContext> builder;

            try
            {
                builder = ServiceLocator.Current.GetInstance <IContextBuilder <IAuthorizationContext> >();
            }
            catch (Exception ex)
            {
                Log.Info("Faild to inject IContextBuilder<IAuthorizationContext>", ex);
                builder = new AuthorizationContextBuilder();
            }
            return(builder);
        }
        public void TestInvalidUriFormat()
        {
            IContextBuilder <IAuthorizationContext> builder = new AuthorizationContextBuilder();

            builder.FromUri("/relativeUrl");
        }
        public void CreateContextFromNullUri()
        {
            IContextBuilder <IAuthorizationContext> builder = new AuthorizationContextBuilder();

            builder.FromUri((Uri)null);
        }