Пример #1
0
        public HttpResponseMessage SessionsStart([FromBody] SessionStartData data)
        {
            HttpResponseMessage retVal;
            ParameterValidator  validator = new ParameterValidator(ModelState);

            if (!validator.IsValid)
            {
                retVal = Request.CreateResponse(HttpStatusCode.BadRequest, validator.Result);
            }
            else
            {
                IResult <ISession> startSessionResult = SecurityManager.StartSession(data.Name, data.Password);

                if (startSessionResult.ResultCode != ResultCode.Failure)
                {
                    ISession session = startSessionResult.ReturnValue;

                    retVal = Request.CreateResponse(HttpStatusCode.OK, new SessionData(session), JsonFormatter());

                    CookieHeaderValue cookie = new CookieHeaderValue(WebApiConstants.SessionTokenCookieName, session.Token);
                    cookie.Expires = session.Expires;
                    cookie.Path    = "/";

                    retVal.Headers.AddCookies(new[] { cookie });
                }
                else
                {
                    retVal = Request.CreateResponse(HttpStatusCode.Unauthorized, new HttpErrorResult("Failed to Start the Session.", startSessionResult), JsonFormatter());
                }
            }

            return(retVal);
        }
        public void NameNull()
        {
            SessionStartData test = new SessionStartData()
            {
                Password = "******"
            };

            Assert.False(test.DataAnnotationIsValid());
        }
        public void NameEmpty()
        {
            SessionStartData test = new SessionStartData()
            {
                Name = string.Empty, Password = "******"
            };

            Assert.False(test.DataAnnotationIsValid());
        }
        public void PasswordTooLong()
        {
            SessionStartData test = new SessionStartData()
            {
                Name = new string('a', 513)
            };

            Assert.False(test.DataAnnotationIsValid());
        }
        public void PasswordNull()
        {
            SessionStartData test = new SessionStartData()
            {
                Name = "name"
            };

            Assert.False(test.DataAnnotationIsValid());
        }
        public void PasswordEmpty()
        {
            SessionStartData test = new SessionStartData()
            {
                Name = "name", Password = string.Empty
            };

            Assert.False(test.DataAnnotationIsValid());
        }
        public void Constructor()
        {
            SessionStartData test = new SessionStartData()
            {
                Name = "name", Password = "******"
            };

            Assert.IsType <SessionStartData>(test);
            Assert.Equal("name", test.Name);
            Assert.Equal("password", test.Password);

            Assert.True(test.DataAnnotationIsValid());
        }