public void TestAddphoneWithExistingEntry() { var testPhoneDatabase = new PhonebookRepository(); testPhoneDatabase.AddPhone("TestUser", new string[] { "+359899777235" }); bool isNewEntry = testPhoneDatabase.AddPhone("testuser", new string[] { "+359888777235" }); Assert.IsFalse(isNewEntry); }
public void ListEntriesShouldHaveCorrectCountPhoneNumbers() { PhonebookRepository repo = new PhonebookRepository(); bool result = repo.AddPhone("Jhon", new List<string>() { "+359123456789", "+35976543212" }); Assert.AreEqual(1, repo.ListEntries(0, 1).ToList().Count); }
public void TestAddingMoreNumbers() { var testPhoneDatabase = new PhonebookRepository(); testPhoneDatabase.AddPhone("TestUser", new string[] { "+359899777235" }); bool isNewEntry = testPhoneDatabase.AddPhone("testuser", new string[] { "+359888777777", "359888777666", "359888777555" }); Assert.IsFalse(isNewEntry); }
public void AddMultiplePhoneTest() { PhonebookRepository target = new PhonebookRepository(); var name = "Kalina"; var numbers = new List<string>(); numbers.Add("+359899777235"); target.AddPhone(name, numbers); name = "Kalina"; numbers = new List<string>(); numbers.Add("+359899777235"); target.AddPhone(name, numbers); name = "Pesho"; numbers = new List<string>(); numbers.Add("++35945346433"); target.AddPhone(name, numbers); name = "Peshev"; numbers = new List<string>(); numbers.Add("++3594545454545"); target.AddPhone(name, numbers); Assert.AreEqual(3, target.Count); }
private static void ChangePhoneCommand(PhonebookRepository phonebookRepository, Command command, StringBuilder output) { var changeResult = phonebookRepository.ChangePhone(Convertnumber(command.Parameters[0]), Convertnumber(command.Parameters[1])); output.AppendLine("" + changeResult + " numbers changed"); }
public void AddPhoneShouldMargePhoneNumbers() { PhonebookRepository repo = new PhonebookRepository(); bool result = repo.AddPhone("Jhon", new List<string>() { "+359123456789", "+35976543212" }); result = repo.AddPhone("Jhon", new List<string>() { "+359123456789", "+35976543212" }); Assert.AreEqual(2, repo.ListEntries(0, 1).ToList()[0].Phones.Count); }
public void ChangePhoneShouldChangeCorrectPhoneNumbers() { PhonebookRepository repo = new PhonebookRepository(); bool result = repo.AddPhone("Jhon", new List<string>() { "+359123456789", "+35976543212" }); repo.ChangePhone("+359123456789", "+359111111119"); Assert.AreEqual("+359111111119|+35976543212", string.Join("|", repo.ListEntries(0, 1).ToList()[0].Phones)); }
public void TestChangePhoneWithOneNumber() { var testPhoneDatabase = new PhonebookRepository(); testPhoneDatabase.AddPhone("TestUser", new string[] { "+359899777235" }); testPhoneDatabase.AddPhone("TestUserTwo", new string[] { "+359888777777" }); int countOfChangedNumbers = testPhoneDatabase.ChangePhone("+359899777235", "+359899777333"); Assert.AreEqual(1, countOfChangedNumbers); }
public static void Main() { var factory = new PhonebookFactory(); var data = new PhonebookRepository(factory); var engine = new Engine(data); engine.Run(); }
public void ShouldAddEmptyPhonesEntryWhenCalled() { PhonebookRepository repo = new PhonebookRepository(); string userName = "******"; List<String> numbers = new List<string>(); repo.AddPhone(userName, numbers); Assert.AreNotEqual(null, repo); }
public void TestChangePhoneWithSeveralNumbers() { var testPhoneDatabase = new PhonebookRepository(); testPhoneDatabase.AddPhone("UserOne", new string[] { "+359899777235", "+359888777777" }); testPhoneDatabase.AddPhone("UserTwo", new string[] { "+359888777777" }); testPhoneDatabase.AddPhone("UserThree", new string[] { "+359888777777", "+359899777235" }); int countOfChangedNumbers = testPhoneDatabase.ChangePhone("+359888777777", "+359888888888"); Assert.AreEqual(3, countOfChangedNumbers); }
public void ListPhonebookNumbersAllPossiblePhoneNumbersSyntax() { var phonebook = new PhonebookRepository(); phonebook.AddPhone("Katia", new[] { "(02) 111 11 22", "123", "(+1) 123 456 789", "0883 / 456-789", "0888 88 99 00", "888-88-99-00", "+359 (888) 41-80-12", "00359 (888) 41-80-12", "+359527734522" }); }
public void AddPhoneTest_Single() { IPhonebookRepository phonebook = new PhonebookRepository(); string name = "Kalina"; string[] phones = {"+359899777235", "+35929811111"}; bool isNewEntry = phonebook.AddPhone(name, phones); Assert.IsTrue(isNewEntry); Assert.IsTrue(phonebook.ListEntries(0, 2) == null); // there is only one entry string actual = phonebook.ListEntries(0, 1)[0].ToString(); Assert.AreEqual("[Kalina: +35929811111, +359899777235]", actual); }
public void AddSinglePhoneTest() { PhonebookRepository target = new PhonebookRepository(); var name = "Kalina"; var numbers = new List<string>(); numbers.Add("+359899777235"); target.AddPhone(name, numbers); Assert.AreEqual(1, target.Count); }
public void ShouldAddPhoneWhenCalled() { PhonebookRepository repo = new PhonebookRepository(); string userName = "******"; List<String> numbers = new List<string>(); numbers.Add("0898 123 456"); numbers.Add("((02) 9811111"); repo.AddPhone(userName, numbers); Assert.AreNotEqual(null, repo); }
public void ShouldAddEmptyUsernameWithPhonesWhenCalled() { PhonebookRepository repo = new PhonebookRepository(); string userName = ""; List<String> numbers = new List<string>(); numbers.Add("088 322 33 44"); numbers.Add("((+359) 899 777236"); numbers.Add("+359899777235"); repo.AddPhone(userName, numbers); Assert.AreNotEqual(null, repo); }
public void AddPhoneTest_TwoDuplicatedEntries() { IPhonebookRepository phonebook = new PhonebookRepository(); string name = "Kalina"; string[] phones = { "+359899777235", "+35929811111" }; phonebook.AddPhone(name, phones); string name2 = "Kalina New"; string[] phones2 = { "+359899777235", "+35929811111" }; phonebook.AddPhone(name2, phones2); (phonebook as PhonebookRepository).Entries[0].Name = name2; // duplication phonebook.AddPhone(name2, phones2); }
public static void Main() { IPhonebookRepository phonebookRepository = new PhonebookRepository(); IConvertable convertPhoneNumber = new Converter(); IPrintable printer = new Printer(); AbstractCommandsFactory factory = new RegularCommandsFactory(convertPhoneNumber, phonebookRepository, printer); ICommand add = factory.MakeCommandAdd(); ICommand change = factory.MakeCommandChange(); ICommand list = factory.MakeCommandList(); ICommand remove = factory.MakeCommandRemove(); Processor processor = new Processor(); processor.ProcessCommands(add, change, list, remove); }
public static void Main() { var output = new StringBuilder(); var phonebookRepository = new PhonebookRepository(); var commandExecutor = new CommandExecutor(); var commands = ParseCommands(); foreach (var command in commands) { commandExecutor.ExecuteCommand(phonebookRepository, command, output); } Console.Write(output); }
public void TestListMultipleEntriesWithMergeAndSorting() { PhonebookRepository phonebook = new PhonebookRepository(); this.repository.AddPhone("Svetlin Nakov", new string[] { "+359887333555", "+35962445566" }); this.repository.AddPhone("SVETLIN NAKOV", new string[] { "+3592555444", "+359887333555" }); this.repository.AddPhone("Niki Kostov", new string[] { "+35989911222", "+35929887744" }); this.repository.AddPhone("niki kostov", new string[] { "+35929887744", "+35989911222" }); string expectedResult = "[Niki Kostov: +35929887744, +35989911222]; [Svetlin Nakov: +3592555444, +35962445566, +359887333555]"; IEnumerable <PhonebookEntry> listedEntries = this.repository.ListEntries(0, 2); string actualResult = string.Join("; ", listedEntries); Assert.AreEqual(expectedResult, actualResult); }
public void AddPhoneTest_TwoEntries() { IPhonebookRepository phonebook = new PhonebookRepository(); string name = "Kalina"; string[] phones = { "+359899777235", "+35929811111" }; phonebook.AddPhone(name, phones); string name2 = "Kalina New"; string[] phones2 = { "+359899777235", "+35929811111" }; bool isNewEntry = phonebook.AddPhone(name2, phones2); Assert.IsTrue(isNewEntry); Assert.IsTrue(phonebook.ListEntries(0, 2).Length == 2); // there is 2 entries Assert.IsTrue(phonebook.ListEntries(0, 3) == null); // but not 3 string actual = phonebook.ListEntries(0, 2)[1].ToString(); Assert.AreEqual("[Kalina New: +35929811111, +359899777235]", actual); }
private static void ListCommand(PhonebookRepository phonebookRepository, Command command, StringBuilder output) { try { var entries = phonebookRepository.ListEntries(int.Parse(command.Parameters[0]), int.Parse(command.Parameters[1])); foreach (var entry in entries) { output.AppendLine(entry.ToString()); } } catch (ArgumentOutOfRangeException) { output.AppendLine("Invalid range"); } }
public void ShouldListUserPhonesWhenCalled() { PhonebookRepository repo = new PhonebookRepository(); string userName = "******"; string phone = "088 322 33 44"; string phoneNew = "((+359) 899 777236"; List<String> numbers = new List<string>(); numbers.Add(phone); numbers.Add(phoneNew); repo.AddPhone(userName, numbers); var list = repo.ListEntries(0, 1); Assert.AreEqual(userName, list[0].FirstName); Assert.AreEqual(2, list[0].PhoneNumbers.Count); }
public void ShouldChangeUserPhonesWhenCalled() { PhonebookRepository repo = new PhonebookRepository(); string userName = "******"; string phone = "088 322 33 44"; List<String> numbers = new List<string>(); numbers.Add(phone); string phoneNew = "((+359) 899 777236"; repo.AddPhone(userName, numbers); repo.ChangePhone(phone, phoneNew); var testObj = GetInstanceField(typeof(PhonebookRepository), repo, "_sortedEntries"); string result = testObj.ToString(); Assert.IsFalse(result.Contains(phone)); Assert.IsTrue(result.Contains(phoneNew)); }
public void ExecuteCommand(PhonebookRepository phonebookRepository, Command command, StringBuilder output) { switch (command.Type) { case CommandTypes.AddPhone: AddPhoneCommand(phonebookRepository, command, output); break; case CommandTypes.ChangePhone: ChangePhoneCommand(phonebookRepository, command, output); break; case CommandTypes.List: ListCommand(phonebookRepository, command, output); break; default: throw new ArgumentException("Unknown command: " + command.Type.ToString()); } }
public void ChangePhoneTest_ChangeMany() { IPhonebookRepository phonebook = new PhonebookRepository(); string[] phones = { "+359899777235", "+35929811111" }; phonebook.AddPhone("Kalina", phones); phonebook.AddPhone("Pesho", phones); phonebook.AddPhone("Gosho", phones); phonebook.AddPhone("Tosho", new string[] { "+359899777236", "+35929811112" }); // different int actuallyChanged = phonebook.ChangePhone("+35929811111", "+35929811112"); Assert.AreEqual(3, actuallyChanged); string actual1 = phonebook.ListEntries(0, 4)[0].ToString(); string actual2 = phonebook.ListEntries(0, 4)[1].ToString(); string actual3 = phonebook.ListEntries(0, 4)[2].ToString(); Assert.AreEqual("[Gosho: +35929811112, +359899777235]", actual1); // record is changed Assert.AreEqual("[Kalina: +35929811112, +359899777235]", actual2); // record is changed Assert.AreEqual("[Pesho: +35929811112, +359899777235]", actual3); // record is changed }
public void ChangeDoubleMultiplePhoneTest() { PhonebookRepository target = new PhonebookRepository(); var name = "Kalina"; var numbers = new List<string>(); numbers.Add("+35989943242235"); target.AddPhone(name, numbers); name = "Pesho"; numbers = new List<string>(); numbers.Add("+35989943242235"); target.AddPhone(name, numbers); var actual = target.ChangePhone("+35989943242235", "+0000000000000"); actual = target.ChangePhone("+35989943242235", "+0000000000000"); Assert.AreEqual(0, actual); }
private static void Main() { ISanitizer sanitizer = new Sanitizer(); IPhonebookRepository phonebookDatabase = new PhonebookRepository(); IPrinter printer = new StringBuilderPrinter(); ILineParser lineParser = new LineParser(sanitizer, phonebookDatabase, printer); while (true) { string inputLine = Console.ReadLine(); if (inputLine == "End" || inputLine == null) { break; } lineParser.ParseLine(inputLine); } Console.Write(printer.GetOutput()); }
public static void Main() { IPrinter printer = new ConsolePrinter(); IPhonebookRepository phonebook = new PhonebookRepository(); IPhoneNumberConvertor phoneConvertor = new PhoneNumberConvertor(); CommandManager commandManager = new CommandManager(phonebook, printer, phoneConvertor); while (true) { string inputData = Console.ReadLine(); if (inputData == "End") { break; } Command command = Command.Parse(inputData); commandManager.ProceedCommand(command); } }
private static void AddPhoneCommand(PhonebookRepository phonebookRepository, Command command, StringBuilder output) { var name = command.Parameters[0]; var numbers = command.Parameters.Skip(1).ToList(); for (int i = 0; i < numbers.Count; i++) { numbers[i] = Convertnumber(numbers[i]); } var isExist = phonebookRepository.AddPhone(name, numbers); switch (isExist) { case true: output.AppendLine("Phone entry merged"); break; default: output.AppendLine("Phone entry created"); break; } }
public void TestWithOneEntry() { var testName = "TestUser"; var testNumbers = new SortedSet<string> { "+359899777235", "+359888777777" }; ListEntry[] expected = new ListEntry[] { new ListEntry { Name = testName, Numbers = testNumbers } }; var testPhoneDatabase = new PhonebookRepository(); testPhoneDatabase.AddPhone("TestUser", new string[] { "+359899777235" }); testPhoneDatabase.AddPhone("testuser", new string[] { "+359888777777" }); var actual = testPhoneDatabase.ListEntries(0, 1); Assert.AreEqual(expected.Count(), actual.Count()); IEnumerator e1 = expected.GetEnumerator(); IEnumerator e2 = actual.GetEnumerator(); while (e1.MoveNext() && e2.MoveNext()) { Assert.AreEqual(e1.Current.ToString(), e2.Current.ToString()); } }
public void MethodInitialize() { this.repository = new PhonebookRepository(); }
public void ListEntriesTest_TwoEntries() { IPhonebookRepository phonebook = new PhonebookRepository(); string name = "Kalina"; string[] phones = { "+359899777235", "+35929811111" }; phonebook.AddPhone(name, phones); string name2 = "Kalina New"; string[] phones2 = { "+359899777235", "+35929811111" }; phonebook.AddPhone(name2, phones2); Assert.IsTrue(phonebook.ListEntries(0, 2).Length == 2); // there is 2 entries Assert.IsTrue(phonebook.ListEntries(0, 3) == null); // but not 3 }
public void ListEntriesTest_None() { IPhonebookRepository phonebook = new PhonebookRepository(); Assert.IsTrue(phonebook.ListEntries(0, 1) == null); // there is no entries initially }
public void ChangePhoneTest_ChangeSingle() { IPhonebookRepository phonebook = new PhonebookRepository(); string name = "Kalina"; string[] phones = { "+359899777235", "+35929811111" }; phonebook.AddPhone(name, phones); int actuallyChanged = phonebook.ChangePhone("+35929811111", "+35929811112"); Assert.AreEqual(1, actuallyChanged); string actual = phonebook.ListEntries(0, 1)[0].ToString(); Assert.AreEqual("[Kalina: +35929811112, +359899777235]", actual); // record is changed }