public void FindClients_WithoutCriteria()
        {
            ClientServices services = new ClientServices(_repository, _clientRepository, _accountRepository, _helper);

            Expect.Call(_clientRepository.Find(x=>true)).Return(new List<Client>());
            _mocks.ReplayAll();

            services.FindClients(null, null, SearchPattern.Exact);
            _mocks.VerifyAll();
        }
        public void FindClients_WithLastNameCriteria()
        {
            ClientServices services = new ClientServices(_repository, _clientRepository, _accountRepository, _helper);

            Expect.Call(_clientRepository.Find(x => x.LastName.StartsWith("BB"))).Return(new List<Client>());
            _mocks.ReplayAll();

            services.FindClients(null, "BB", SearchPattern.StartsWith);
            _mocks.VerifyAll();
        }
        public void FindClients_WithFirstNameCriteria()
        {
            ClientServices services = new ClientServices(_repository, _clientRepository, _accountRepository, _helper);

            Expect.Call(_clientRepository.Find(x => x.FirstName.Contains("AA"))).Return(new List<Client>());
            _mocks.ReplayAll();

            services.FindClients("AA", null, SearchPattern.Contains);
            _mocks.VerifyAll();
        }
        public void FindClients_WithBothFirstNameAndLastNameCriterias()
        {
            ClientServices services = new ClientServices(_repository, _clientRepository, _accountRepository, _helper);

            Expect.Call(_clientRepository.Find(x => x.FirstName.Equals("AA") && x.LastName.Equals("BB"))).Return(new List<Client>());
            _mocks.ReplayAll();

            services.FindClients("AA", "BB", SearchPattern.Exact);
            _mocks.VerifyAll();
        }
        public void GetTopClients_DescendingSort()
        {
            ClientServices services = new ClientServices(_repository, _clientRepository, _accountRepository, _helper);

            Expect.Call(_repository.GetAll<Account>()).Return(CreateData());
            Expect.Call(_accountRepository.GetBalance(11)).Return(1000);
            Expect.Call(_accountRepository.GetBalance(12)).Return(2000);
            Expect.Call(_accountRepository.GetBalance(2)).Return(6000);
            Expect.Call(_accountRepository.GetBalance(3)).Return(4000);

            _mocks.ReplayAll();

            IList<Client> clients = services.GetTopClients(2);

            Assert.AreEqual(2, clients[0].Id);
            Assert.AreEqual(3, clients[1].Id);
            _mocks.VerifyAll();
        }
        public void GetTopClients_top0()
        {
            ClientServices services = new ClientServices(_repository, _clientRepository, _accountRepository, _helper);

            Expect.Call(_repository.GetAll<Account>()).Return(CreateData());

            _mocks.ReplayAll();

            IList<Client> clients = services.GetTopClients(0);

            Assert.AreEqual(0, clients.Count);
            _mocks.VerifyAll();
        }
        public void GetTopClients_EmptyBank()
        {
            ClientServices services = new ClientServices(_repository, _clientRepository, _accountRepository, _helper);

            IList<Account> accounts = new List<Account>();
            Expect.Call(_repository.GetAll<Account>()).Return(accounts);

            _mocks.ReplayAll();

            IList<Client> clients = services.GetTopClients(100);

            Assert.AreEqual(0, clients.Count);
            _mocks.VerifyAll();
        }