public void NullSecurityContext_IsInvalid()
 {
     var input = new LoginRequest {
     Login = "******",
     Password = "******",
     SecurityContext = null
       };
       var actualResult = _sut.Validate(input);
       Assert.That(actualResult.IsValid, Is.False);
 }
 public void EmptyPassword_IsValid()
 {
     var input = new LoginRequest {
     Login = "******",
     Password = string.Empty,
     SecurityContext = A.Dummy<ISecurityContext>()
       };
       var actualResult = _sut.Validate(input);
       Assert.That(actualResult.IsValid, Is.True);
 }
            public void ParsesRequestCorrectly()
            {
                var securityContext = A.Fake<ISecurityContext>();
                ConfigureSecurityContextFactory_ToReturn(securityContext);

                var expectedCommand = new LoginRequest {
                  Login = "******",
                  Password = "******",
                  SecurityContext = securityContext
                };

                Post();

                A.CallTo(() => _loginHandler
                  .Handle(A<LoginRequest>.That.Matches(req => req.HasSamePropertyValuesAs(expectedCommand))))
                 .MustHaveHappened(Repeated.Exactly.Once);
            }
            public void GivenMissingBodyInRequest_CallsInnerHandlerWithEmptyRequest()
            {
                var securityContext = A.Fake<ISecurityContext>();
                ConfigureSecurityContextFactory_ToReturn(securityContext);
                var expectedCommand = new LoginRequest {
                  Login = null,
                  Password = null,
                  SecurityContext = securityContext
                };

                var response = Post(null);

                Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
                A.CallTo(() => _loginHandler
                  .Handle(A<LoginRequest>.That.Matches(req => req.HasSamePropertyValuesAs(expectedCommand))))
                 .MustHaveHappened(Repeated.Exactly.Once);
            }
            public void WithValidJson_ShouldDelegateControlToInnerHandler()
            {
                var securityContext = A.Fake<ISecurityContext>();
                ConfigureSecurityContextFactory_ToReturn(securityContext);
                var expectedCommand = new LoginRequest {
                  Login = "******",
                  Password = "******",
                  SecurityContext = securityContext
                };

                var response = Post();

                Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
                A.CallTo(() => _loginHandler
                  .Handle(A<LoginRequest>.That.Matches(req => req.HasSamePropertyValuesAs(expectedCommand))))
                 .MustHaveHappened(Repeated.Exactly.Once);
            }