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()); }
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); }
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); }
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); }
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); }
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); }
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); }
public void Search_should_search_by_name() { var searchParameter = new CriminalSearchParameters { Name = "Bob" }; var names = new[] { "Bob Dylan", "Bob Marley" }; AssertResults(searchParameter, names); }
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); }
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); }
public void Search_should_search_by_maximum_weight() { var searchParameter = new CriminalSearchParameters { MaximumWeight = 198 }; var names = new[] { "Bill Gates", "Amy Winehouse" }; AssertResults(searchParameter, names); }
public void Search_should_search_by_passport_number() { var searchParameter = new CriminalSearchParameters { PassportNumber = "11" }; var names = new[] { "Takuma Sato", "Claire Smith" }; AssertResults(searchParameter, names); }
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); }
public void Search_should_search_by_father_name() { var searchParameter = new CriminalSearchParameters { FatherName = "Geller" }; var names = new[] { "Ross Geller", "Monica Geller" }; AssertResults(searchParameter, names); }
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); }
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); }