public decimal CustomerBalance(Customer customer) { //assume Dictionary <Account, Role> accounts = new Dictionary <Account, Role>(); accounts.Add(new Account { Id = 1, Balance = 100 }, new Role()); accounts.Add(new Account { Id = 2, Balance = -200 }, new Role()); PexAssume.Implies(customer != null, () => customer.RelatedAccounts = accounts); //arrange SIRepository repository = new SIRepository(); SICustomerRepository customerRepository = new SICustomerRepository(); SIAccountServices accountServices = new SIAccountServices(); IDtoCreator <Customer, CustomerDto> custCreator = new CustomerDtoCreator(); accountServices.BalanceAccount = (x) => x.Balance; CustomerServices services = new CustomerServices(customerRepository, repository, accountServices, custCreator); var result = services.CustomerBalance(customer); PexAssert.Case(customer.RelatedAccounts == accounts).Implies(() => result == -100); return(result); }
public void CountPUT1(int MaxValue) { recentFiles.MaxFiles = MaxValue; PexAssert .Case(MaxValue < MIN) .Implies(() => MIN == recentFiles.MaxFiles) .Case(MaxValue == MIN) .Implies(() => MaxValue == recentFiles.MaxFiles) .Case(MaxValue > MIN && MaxValue < MAX) .Implies(() => MaxValue == recentFiles.MaxFiles) .Case(MaxValue == MAX) .Implies(() => MaxValue == recentFiles.MaxFiles) .Case(MaxValue > MAX) .Implies(() => MAX == recentFiles.MaxFiles); }
public void Test_Update(int[] keys, int[] values, int key, int key1, [PexAssumeNotNull] Func <int, Optional <int> > updateFunc) { var dict = CreateDictionary(keys, values); PexAssume.AreNotEqual(key, key1); Optional <int> value; var dict1 = dict.Update(key, updateFunc, out value); Array.Sort(keys, values); int i = Array.BinarySearch(keys, key); PexAssert .Case(i >= 0).Implies(() => dict[key] == value && dict1[key] == updateFunc(value.Value) && dict[key1] == dict1[key1]) .Case(i < 0).Implies(() => dict[key] == Optional <int> .None && ReferenceEquals(dict1, dict)) .ExpectExactlyOne(); }
public void Test_Remove <TValue>(int[] keys, TValue[] values, int key, int key1) { var dict = CreateDictionary(keys, values); PexAssume.AreNotEqual(key, key1); Optional <TValue> value; var dict1 = dict.Remove(key, out value); Array.Sort(keys, values); int i = Array.BinarySearch(keys, key); PexAssert .Case(i >= 0).Implies(() => dict[key] == value && dict1[key] == Optional <TValue> .None && dict[key1] == dict1[key1]) .Case(i < 0).Implies(() => dict[key] == Optional <TValue> .None && ReferenceEquals(dict1, dict)) .ExpectExactlyOne(); }
public CustomerDto GetCustomerById(int id) { var repository = new SIRepository(); var customerRepository = new SICustomerRepository(); var accountServices = new SIAccountServices(); var custCreator = new CustomerDtoCreator(); repository.GetObject <Customer>((x) => _customers.SingleOrDefault(c => c.Id == (int)x)); CustomerServices services = new CustomerServices(customerRepository, repository, accountServices, custCreator); var result = services.GetCustomerById(id); //asert PexAssert.Case(id == _customers[0].Id).Implies(() => result.Email == _customers[0].Email); return(result); }
public IList <CustomerDto> GetCustomersForAdvisor(int advisorID) { SIRepository repository = new SIRepository(); SICustomerRepository customerRepository = new SICustomerRepository(); SIAccountServices accountServices = new SIAccountServices(); IDtoCreator <Customer, CustomerDto> custCreator = new CustomerDtoCreator(); repository.GetObject <Advisor>((x) => _advisors.SingleOrDefault(a => a.Id == (int)x)); //act CustomerServices customerServices = new CustomerServices(customerRepository, repository, accountServices, custCreator); IList <CustomerDto> result = customerServices.GetCustomersForAdvisor(advisorID); PexAssert.Case(advisorID == _advisors[0].Id).Implies(() => result.Count == _advisors[0].Customers.Count); return(result); }
public CustomerDto GetCustomerByCode(string code) { //arrange SIRepository repository = new SIRepository(); SICustomerRepository customerRepository = new SICustomerRepository(); SIAccountServices accountServices = new SIAccountServices(); IDtoCreator <Customer, CustomerDto> custCreator = new CustomerDtoCreator(); customerRepository.GetCustomerByCodeString = (x) => _customers.SingleOrDefault(a => a.Code == x); //act CustomerServices custonerServices = new CustomerServices(customerRepository, repository, accountServices, custCreator); CustomerDto result = custonerServices.GetCustomerByCode(code); //assert PexAssert.Case(code == _customers[0].Code).Implies(() => result.Email == _customers[0].Email); return(result); }
public CustomerDto GetCustomerByIdentity(string identity) { //arrange SIRepository repository = new SIRepository(); SICustomerRepository customerRepository = new SICustomerRepository(); SIAccountServices accountServices = new SIAccountServices(); IDtoCreator <Customer, CustomerDto> custCreator = new CustomerDtoCreator(); customerRepository.GetCustomerByIdentityString = (x) => _customers.SingleOrDefault(c => c.Identification == x); //act CustomerServices services = new CustomerServices(customerRepository, repository, accountServices, custCreator); var result = services.GetCustomerByIdentity(identity); //assert PexAssert.Case(identity == _customers[0].Identification).Implies(() => result.Email == _customers[0].Email); return(result); }
public UserIdentityDto AuthenticateIndividualCustomer(string identity, string password) { var repository = new SIRepository(); var customerRepository = new SICustomerRepository(); var userRepository = new SIUserRepository(); var hashProvider = new SIHashProvider(); IDtoCreator <UserIdentity, UserIdentityDto> identityCreator = new UserIdentityDtoCreator(); hashProvider.HashString = (x) => x; customerRepository.GetCustomerByIdentityString = (x) => _customers.SingleOrDefault(c => c.Identification == x); //act UserServices userServices = new UserServices(customerRepository, repository, null, hashProvider, identityCreator); UserIdentityDto result = userServices.AuthenticateUser(identity, password); //assert PexAssert.Case(identity == _customers[0].Identification && password == _customers[0].Password) .Implies(() => result.Email == _customers[0].Email); return(result); }