public void ListAllPages_WhenSuppliedEmailIsValid_ListsPages(WireDataFormat format)
        {
            var client = TestContext.CreateClientInvalidCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);

            accountClient.ListAllPages("*****@*****.**");
        }
        public void IsEmailRegistered_WhenSuppliedEmailUnlikelyToExist_ReturnsFalse(WireDataFormat format)
        {
            var client = TestContext.CreateClientInvalidCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);

            var exists = accountClient.IsEmailRegistered(Guid.NewGuid().ToString() + "@justgiving.com"); 

            Assert.IsFalse(exists);
        }
        public void IsEmailRegistered_WhenSuppliedKnownEmail_ReturnsTrue(WireDataFormat format)
        {
            var client = TestContext.CreateClientInvalidCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);

            var exists = accountClient.IsEmailRegistered(TestContext.TestUsername);

            Assert.IsTrue(exists);
        }
        public void Register_WhenSuppliedEmailIsUnused_AccountIsCreatedAndEmailAddressReturned(WireDataFormat format)
        {
            var client = TestContext.CreateClientInvalidCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);
            var email = Guid.NewGuid() + "@tempuri.org";
            var request = CreateValidRegisterAccountRequest(email);

            var registeredUsersEmail = accountClient.Create(request);

            Assert.AreEqual(email, registeredUsersEmail);
        }
        public void Register_WhenSuppliedWithEmailThatIsAlreadyRegistered_ReturnsAnError(WireDataFormat format)
        {
            var client = TestContext.CreateClientInvalidCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);
            var email = Guid.NewGuid() + "@tempuri.org";
            var request = CreateValidRegisterAccountRequest(email);
            accountClient.Create(request);

            var exception = Assert.Throws<ErrorResponseException>(() => accountClient.Create(request));

            Assert.AreEqual(1, exception.Errors.Count);
            Assert.That(exception.Errors[0].Description, Is.StringContaining("email address is already in use"));
        }
        public void Register_WhenSuppliedPasswordFormatInvalid_ReturnsAnError(WireDataFormat format)
        {
            const string invalidPassowordValue = "abc"; //Password to short
            var client = TestContext.CreateClientNoCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);
            var email = Guid.NewGuid() + "@tempuri.org";
            var request = CreateValidRegisterAccountRequest(email);
            request.Password = invalidPassowordValue;
            
            var exception = Assert.Throws<ErrorResponseException>(() => accountClient.Create(request));

            Assert.AreEqual(1, exception.Errors.Count);
            Assert.That(exception.Errors[0].Description, Is.StringContaining("value provided is not valid for password"));
        }
        public void RequestPassWordReminder_WhenSuppliedKnownEmail_ReturnsTrue(WireDataFormat format)
        {
            var client = TestContext.CreateClientInvalidCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);
            
            accountClient.RequestPasswordReminder(TestContext.TestUsername); 
        }
        public void RequestPassWordReminder_WhenSuppliedKnownEmailAndDomain_ReturnsTrue(WireDataFormat format)
        {

            var testConfigurations = (ITestConfigurations)ConfigurationManager.GetSection("testConfigurations"); 

            var client = TestContext.CreateClientInvalidCredentials(format);
            client.SetWhiteLabelDomain(testConfigurations.RflDomain);
			var accountClient = new AccountApi(client.HttpChannel);

            accountClient.RequestPasswordReminder(TestContext.TestUsername);
        }
        public void RequestRetrieveAccount_ReturnsAccountDetails(WireDataFormat format)
        {
            var client = TestContext.CreateClientInvalidCredentials(format);
			var accountClient = new AccountApi(client.HttpChannel);

            var account = accountClient.RetrieveAccount();

            Assert.AreEqual(TestContext.TestUsername, account.Email);
        }
		public void SetUp()
		{
			_config = new ClientConfiguration(TestContext.ApiLocation, TestContext.ApiKey, TestContext.ApiVersion);
			_httpChannel = new HttpChannel(_config, new HttpClientWrapper());
			_api = new AccountApi(_httpChannel);
		}
        public void ReplaceInterest_WhenSuppliedValidCredentialsAndValidRequest_REturnTrue(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientInvalidCredentials(format);
            var accountClient = new AccountApi(client.HttpChannel);
            var validRequest = CreateValidReplaceInterestRequest();

            //act
            var result = accountClient.ReplaceInterest(validRequest);

            //assert
            Assert.IsTrue(result);
        }
        public void Interest_WhenSuppliedValidCredentials_ReturnListOfInterest(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientInvalidCredentials(format);
            var accountClient = new AccountApi(client.HttpChannel);

            //act
            var result = accountClient.Interest();

            //assert
            Assert.IsNotNull(result);
        }
        public void RateContent_WhenValidRequest_ReturnTrue(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientInvalidCredentials(format);
            var accountclient = new AccountApi(client.HttpChannel);
            var validRequest = CreateValidRateContentRequest();

            //act
            var response = accountclient.RateContent(validRequest);

            //assert
            Assert.IsTrue(response);
        }
        public void ChangePassword_WhenSuppliedValidChangePasswordRequest_ReturnTrue(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientNoCredentials(format);
            var validRequest = CreateValidChangePasswordForGivenAccount(TestContext.TestUsername);
            var accountClient = new AccountApi(client.HttpChannel);

            //act
            var result = accountClient.ChangePassword(validRequest);

            //assert
            Assert.IsTrue(result);
        }