public void DeletingAUserTwiceReturnsAnError()
        {
            var requeststring = _fixture.AuthenticationUrl + "/api/Users/";
            var requestPost   = new PostModelAuthentication
            {
                userName     = Helpers.RandomNameGenerator.RandomString(25),
                emailAddress = Helpers.RandomNameGenerator.RandomEmail(),
                active       = true,
                passWord     = "******"
            };
            var response =
                _fixture.BaseApiClient.GenericPostObject <PostModelResponse>(requeststring, requestPost).Result as
                PostModelResponse;

            var request = new IdBasedQueryModel
            {
                Id = response.id
            };

            var queryString =
                Helpers.CreateApiRequestString.GetQueryStringFromModel <IIdBasedQueryModel, IdBasedQueryModel>(request);
            var requestDelete   = requeststring + queryString;
            var deletedResponse = _fixture.BaseApiClient.GenericDeleteObject(requestDelete);

            Assert.Equal(204, deletedResponse.StatusCode);

            deletedResponse = _fixture.BaseApiClient.GenericDeleteObject(requestDelete);

            Assert.Equal(404, deletedResponse.StatusCode);
        }
        public void FaultyPostsDoNotGetEnteredIntoTheDatabse(string username, string email, string password, string message)
        {
            var requeststring = _fixture.AuthenticationUrl + "/api/Users/";
            var request       = new PostModelAuthentication
            {
                userName     = username,
                emailAddress = email,
                active       = true,
                passWord     = password
            };
            var response = _fixture.BaseApiClient.GenericPostObject <PostModelResponse>(requeststring, request).Result as BaseErrorResponse;

            Assert.Equal(400, response.StatusCode);
            Assert.Contains(message, response.UserError);
        }
        public void PostAUserReturnsASuccesCode()
        {
            var requeststring = _fixture.AuthenticationUrl + "/api/Users/";
            var request       = new PostModelAuthentication
            {
                userName     = Helpers.RandomNameGenerator.RandomString(25),
                emailAddress = Helpers.RandomNameGenerator.RandomEmail(),
                active       = true,
                passWord     = "******"
            };
            var response = _fixture.BaseApiClient.GenericPostObject <PostModelResponse>(requeststring, request).Result as PostModelResponse;

            Assert.Equal(201, response.StatusCode);
            Assert.Equal(request.userName.ToLowerInvariant(), response.userName);
            Assert.Equal(request.emailAddress, response.emailAddress);
        }
        public void GetUserByIdReturnsSuccess()
        {
            var poststring = _fixture.AuthenticationUrl + "/api/Users/";
            var request    = new PostModelAuthentication
            {
                userName     = Helpers.RandomNameGenerator.RandomString(25),
                emailAddress = Helpers.RandomNameGenerator.RandomEmail(),
                active       = true,
                passWord     = "******"
            };
            var resp = _fixture.BaseApiClient.GenericPostObject <PostModelResponse>(poststring, request).Result as PostModelResponse;

            var requeststring = _fixture.AuthenticationUrl + $"/api/Users/{resp.id}";
            var response      = _fixture.BaseApiClient.GenericGet <UserResponse>(requeststring).Result;

            Assert.Equal(200, response.StatusCode);
        }
        public void PostAUserTwiceWillResultInAnError()
        {
            var requeststring = _fixture.AuthenticationUrl + "/api/Users/";
            var request       = new PostModelAuthentication
            {
                userName     = Helpers.RandomNameGenerator.RandomString(25),
                emailAddress = Helpers.RandomNameGenerator.RandomEmail(),
                active       = true,
                passWord     = "******"
            };
            var response = _fixture.BaseApiClient.GenericPostObject <PostModelResponse>(requeststring, request).Result;

            Assert.Equal(201, response.StatusCode);

            response = _fixture.BaseApiClient.GenericPostObject <PostModelResponse>(requeststring, request).Result;
            Assert.Equal(400, response.StatusCode);
        }
        public void CanValidateByEmailAndUserNameWithValidPassWord(string username, string email)
        {
            var postString  = _fixture.AuthenticationUrl + "/api/Users/";
            var requestPost = new PostModelAuthentication
            {
                userName     = Helpers.RandomNameGenerator.RandomString(25),
                emailAddress = Helpers.RandomNameGenerator.RandomEmail(),
                active       = true,
                passWord     = "******"
            };

            var response =
                _fixture.BaseApiClient.GenericPostObject <PostModelResponse>(postString, requestPost).Result as
                PostModelResponse;

            Assert.Equal(201, response.StatusCode);
            if (username != null)
            {
                username = requestPost.userName.ToLowerInvariant();
            }

            if (email != null)
            {
                email = requestPost.emailAddress;
            }
            var requeststring   = _fixture.AuthenticationUrl + "/api/Validate/";
            var requestValidate = new ValidateUser
            {
                emailAddress = email,
                userName     = username,
                passWord     = requestPost.passWord
            };

            var resp = _fixture.AuthenicationApi.PostAValidation(requeststring, requestValidate).Result as ValidatePostResult;

            Assert.Equal(200, resp.StatusCode);
            Assert.True(resp.Valid);
        }