public AuthenticateMember_QRM AuthenticateMember(string accessToken, AuthenticateMemberRequestModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (string.IsNullOrEmpty(model.UserName))
            {
                throw new ArgumentNullException(nameof(model.UserName));
            }

            if (string.IsNullOrEmpty(model.Password))
            {
                throw new ArgumentNullException(nameof(model.Password));
            }

            if (string.IsNullOrWhiteSpace(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken));
            }

            var query = new AuthenticateMember_Q
            {
                UserName = model.UserName,
                Password = model.Password
            };

            return(_permQueryDispatcher.Dispatch <AuthenticateMember_Q, AuthenticateMember_QRM>(query));
        }
        public void AuthenticateMember_ShouldSucceed()
        {
            var expectedResult = _fixture.Create <AuthenticateMember_QRM>();

            var requestModel = new AuthenticateMemberRequestModel
            {
                UserName = expectedResult.UserName,
                Password = _fixture.Create <string>()
            };

            A.CallTo(() => _permQueryDispatcher.Dispatch <AuthenticateMember_Q, AuthenticateMember_QRM>(A <AuthenticateMember_Q> .Ignored)).Returns(expectedResult);
            var result = _authenticationService.AuthenticateMember(_fixture.Create <string>(), requestModel);

            Assert.AreSame(expectedResult, result);
            A.CallTo(() => _permQueryDispatcher.Dispatch <AuthenticateMember_Q, AuthenticateMember_QRM>(A <AuthenticateMember_Q> .Ignored)).MustHaveHappened();
        }