public IBusinessCard GetBusinessCard(string data) { //Tommy;Lee;CI;11-11-1999;M;1000;7789995434 BusinessCard card = new BusinessCard(); string pattern = @"\w+;\w+;\w+;\d{2}-\d{2}-\d{4};[f,m];\d{3,6};\d{10}"; if (Regex.IsMatch(data, pattern, RegexOptions.IgnoreCase)) { string[] substrings = data.Split(';'); card.firstName = substrings[0]; card.lastName = substrings[1]; card.department = substrings[2]; DateTime currentDate = DateTime.Now; DateTime birthDate = DateTime.ParseExact(substrings[3], "dd-mm-yyyy", CultureInfo.InvariantCulture); DateTime age = new DateTime((currentDate - birthDate).Ticks); card.age = age.Year - 1; card.gender = substrings[4]; card.salary = Convert.ToInt32(substrings[5]); card.phoneNumber = substrings[6]; } else { Console.WriteLine("Incorrect personal data!"); return(null); } Console.WriteLine(card.firstName + ' ' + card.lastName); Console.WriteLine(card.department); Console.WriteLine(card.age); Console.WriteLine(card.gender); Console.WriteLine(card.salary); Console.WriteLine(card.phoneNumber); return(card); }
public static bool TestGetBusinessCard() { //arrange string personalData = "Tommy;Lee;CI;11-11-1999;M;10000;7789995434"; string personalData2 = "Chak;Norris;CI;11-11-1999;M;10000;7789995434"; string personalData3 = ";;;;;;"; string personalData4 = ";Norris;CI;11-11-1999;f;10000;7789995434"; IBusinessCard expected = new BusinessCard("Tommy", "Lee", "CI", 19, "M", 10000, "7789995434"); IBusinessCard businessCardProvider = new BusinessCard(); //act IBusinessCard actual = businessCardProvider.GetBusinessCard(personalData); IBusinessCard actual2 = businessCardProvider.GetBusinessCard(personalData2); //assert if (businessCardProvider.GetBusinessCard(personalData3) != null) { return(false); } if (businessCardProvider.GetBusinessCard(personalData4) != null) { return(false); } if (actual.GetEmployee() != expected.GetEmployee()) { Console.WriteLine("testEmployee"); return(false); } if (!actual.GetDepartment().Equals(expected.GetDepartment())) { Console.WriteLine("testDep"); return(false); } if (actual.GetAge() != expected.GetAge()) { Console.WriteLine(actual.GetAge()); return(false); } if (actual.GetGender() != expected.GetGender()) { Console.WriteLine("testGen"); return(false); } if (actual.GetSalary() != expected.GetSalary()) { Console.WriteLine("testSalary"); return(false); } if (actual.GetPhoneNumber() != expected.GetPhoneNumber()) { Console.WriteLine("testPhone"); return(false); } return(true); }