Пример #1
0
        private void AssertResults(CriminalSearchParameters searchParameter, string[] names)
        {
            var criminals = _criminalRepository.Search(searchParameter);

            Assert.AreEqual(names.Length, criminals.Count);
            Assert.True(names.All(name => criminals.Any(criminal => criminal.Name.Equals(name))));
        }
        public List <Criminal> Search(CriminalSearchParameters searchParameters, int?maxResults = int.MaxValue)
        {
            var query = from criminal in GetTable()
                        select criminal;

            if (!string.IsNullOrEmpty(searchParameters.Name))
            {
                query = query.Where(c => c.Name.Contains(searchParameters.Name));
            }
            if (searchParameters.MinimumBirthDate.HasValue)
            {
                query = query.Where(c => c.BirthDate >= searchParameters.MinimumBirthDate.Value);
            }
            if (searchParameters.MaximumBirthDate.HasValue)
            {
                query = query.Where(c => c.BirthDate <= searchParameters.MaximumBirthDate.Value);
            }
            if (!string.IsNullOrEmpty(searchParameters.Gender))
            {
                query = query.Where(c => c.Gender.Equals(searchParameters.Gender));
            }
            if (searchParameters.MinimumHeight.HasValue)
            {
                query = query.Where(c => c.Height >= searchParameters.MinimumHeight.Value);
            }
            if (searchParameters.MaximumHeight.HasValue)
            {
                query = query.Where(c => c.Height <= searchParameters.MaximumHeight.Value);
            }
            if (searchParameters.MinimumWeight.HasValue)
            {
                query = query.Where(c => c.Weight >= searchParameters.MinimumWeight.Value);
            }
            if (searchParameters.MaximumWeight.HasValue)
            {
                query = query.Where(c => c.Weight <= searchParameters.MaximumWeight.Value);
            }
            if (!string.IsNullOrEmpty(searchParameters.Nationality))
            {
                query = query.Where(c => c.Nationality.Contains(searchParameters.Nationality));
            }
            if (!string.IsNullOrEmpty(searchParameters.FatherName))
            {
                query = query.Where(c => c.FatherName.Contains(searchParameters.FatherName));
            }
            if (!string.IsNullOrEmpty(searchParameters.MotherName))
            {
                query = query.Where(c => c.MotherName.Contains(searchParameters.MotherName));
            }
            if (!string.IsNullOrEmpty(searchParameters.PassportNumber))
            {
                query = query.Where(c => c.PassportNumber.Contains(searchParameters.PassportNumber));
            }
            if (!string.IsNullOrEmpty(searchParameters.DriverLicenseNumber))
            {
                query = query.Where(c => c.DriverLicenseNumber.Contains(searchParameters.DriverLicenseNumber));
            }

            return(query.Take(maxResults.Value).ToList());
        }
Пример #3
0
        public void Search_should_search_by_maximum_height()
        {
            var searchParameter = new CriminalSearchParameters {
                MaximumHeight = 64
            };
            var names = new[] { "Claire Smith", "Chandler Bing", "Fabiana Murer", "Joey Tribiani" };

            AssertResults(searchParameter, names);
        }
Пример #4
0
        public void Search_should_search_by_minimum_weight()
        {
            var searchParameter = new CriminalSearchParameters {
                MinimumWeight = 236
            };
            var names = new[] { "Elvis Presley", "Monica Geller", "Phoebe Buffay" };

            AssertResults(searchParameter, names);
        }
Пример #5
0
        public void Search_should_search_by_gender_female()
        {
            var searchParameter = new CriminalSearchParameters {
                Gender = "F"
            };
            var names = new[] { "Monica Geller", "Phoebe Buffay", "Rachel Green", "Hillary Clinton", "Steff Johson", "Amy Winehouse", "Venus Willians", "Fabiana Murer", "Claire Smith" };

            AssertResults(searchParameter, names);
        }
Пример #6
0
        public void Search_should_search_by_minimum_height()
        {
            var searchParameter = new CriminalSearchParameters {
                MinimumHeight = 87
            };
            var names = new[] { "Bill Gates", "Rachel Green", "Paul Gonzalez", "Bob Marley", "Phoebe Buffay" };

            AssertResults(searchParameter, names);
        }
Пример #7
0
        public void Search_should_search_by_maximum_birthday()
        {
            var searchParameter = new CriminalSearchParameters {
                MaximumBirthDate = new DateTime(1949, 2, 26)
            };
            var names = new[] { "Amy Winehouse" };

            AssertResults(searchParameter, names);
        }
Пример #8
0
        public void Search_should_search_by_gender_male()
        {
            var searchParameter = new CriminalSearchParameters {
                Gender = "M"
            };
            var names = new[] { "John Dylan", "Bob Dylan", "Bob Marley", "Elvis Presley", "Bill Gates", "Takuma Sato", "Paul Gonzalez", "John Travolta", "Joey Tribiani", "Chandler Bing", "Ross Geller" };

            AssertResults(searchParameter, names);
        }
Пример #9
0
        public void Search_should_search_by_name()
        {
            var searchParameter = new CriminalSearchParameters {
                Name = "Bob"
            };
            var names = new[] { "Bob Dylan", "Bob Marley" };

            AssertResults(searchParameter, names);
        }
Пример #10
0
        public void Search_should_search_by_minimum_birthday()
        {
            var searchParameter = new CriminalSearchParameters {
                MinimumBirthDate = new DateTime(2000, 10, 25)
            };
            var names = new[] { "Joey Tribiani" };

            AssertResults(searchParameter, names);
        }
Пример #11
0
        public void Search_should_search_by_driver_license_number()
        {
            var searchParameter = new CriminalSearchParameters {
                DriverLicenseNumber = "X"
            };
            var names = new[] { "Bill Gates", "Takuma Sato", "John Dylan" };

            AssertResults(searchParameter, names);
        }
Пример #12
0
        public void Search_should_search_by_maximum_weight()
        {
            var searchParameter = new CriminalSearchParameters {
                MaximumWeight = 198
            };
            var names = new[] { "Bill Gates", "Amy Winehouse" };

            AssertResults(searchParameter, names);
        }
Пример #13
0
        public void Search_should_search_by_passport_number()
        {
            var searchParameter = new CriminalSearchParameters {
                PassportNumber = "11"
            };
            var names = new[] { "Takuma Sato", "Claire Smith" };

            AssertResults(searchParameter, names);
        }
Пример #14
0
        public void Search_should_search_by_mother_name()
        {
            var searchParameter = new CriminalSearchParameters {
                MotherName = "Mary"
            };
            var names = new[] { "Amy Winehouse", "Claire Smith", "Bob Marley", "Bill Gates", "John Dylan", "Hillary Clinton", "Phoebe Buffay" };

            AssertResults(searchParameter, names);
        }
Пример #15
0
        public void Search_should_search_by_father_name()
        {
            var searchParameter = new CriminalSearchParameters {
                FatherName = "Geller"
            };
            var names = new[] { "Ross Geller", "Monica Geller" };

            AssertResults(searchParameter, names);
        }
Пример #16
0
        public void Search_should_search_by_nationality()
        {
            var searchParameter = new CriminalSearchParameters {
                Nationality = "Brazilian"
            };
            var names = new[] { "John Dylan", "Venus Willians", "Fabiana Murer", "John Travolta", "Monica Geller", "Phoebe Buffay" };

            AssertResults(searchParameter, names);
        }
Пример #17
0
        public void Search_should_return_all_criminal_data(string name, DateTime?birthDate, string gender, int height, int weight, string nationality, string fatherName, string motherName, string passportNumber, string driverLicenseNumber)
        {
            var searchParameter = new CriminalSearchParameters {
                Name = name
            };
            var criminal = _criminalRepository.Search(searchParameter).Single();

            Assert.AreEqual(name, criminal.Name);
            Assert.AreEqual(birthDate, criminal.BirthDate);
            Assert.AreEqual(gender, criminal.Gender);
            Assert.AreEqual(height, criminal.Height);
            Assert.AreEqual(weight, criminal.Weight);
            Assert.AreEqual(nationality, criminal.Nationality);
            Assert.AreEqual(fatherName, criminal.FatherName);
            Assert.AreEqual(motherName, criminal.MotherName);
            Assert.AreEqual(passportNumber, criminal.PassportNumber);
            Assert.AreEqual(driverLicenseNumber, criminal.DriverLicenseNumber);
        }