Exemple #1
0
        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();
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }