public void MoqConfigWorkerTest() { //arrange var _workconf = new Mock <IConfigWorker>(); listHost = new Dictionary <int, IPinger>(10); listHost.Add(1, new global::Pinger.PingerModule.Pinger()); listHost.Add(2, new global::Pinger.PingerModule.Pinger()); listHost.Add(3, new global::Pinger.PingerModule.Pinger()); //act _workconf.Setup(x => x.RemoveFromConfig(1)); _workconf.Setup(x => x.CreateConfig()).Verifiable(); _workconf.Setup(x => x.SaveInConfig()).Returns(false); _workconf.Setup(x => x.SaveInConfig("")).Returns(false); string[] array = { "www.google.com", "5", "http", "200" }; _workconf.Setup(x => x.SaveInConfig(It.Is <string[]>(z => array.Length > 4 && array.Length < 3))).Returns(false); _workconf.Setup(x => x.SaveInConfig(array)).Returns(true); _workconf.Setup( x => x.RemoveFromConfig(It.Is <Int32>(v => listHost.Count - 1 >= v && v >= 0))) .Returns(true); /* _workconf.Setup(x => x.RemoveFromConfig(It.Is<Int32>(v => v > 0))).Returns(true); * * _workconf.Setup(x => x.RemoveFromConfig(It.Is<Int32>(v => v < 0))).Returns(false);*/ //assert IConfigWorker worker = _workconf.Object; worker.CreateConfig(); Assert.AreEqual(worker.SaveInConfig(""), false); Assert.AreEqual(worker.SaveInConfig("www.google.com", "5", "http", "200"), true); Assert.AreEqual(worker.SaveInConfig("www.google.com", "5", "http", "200", ""), false); Assert.AreEqual(worker.SaveInConfig("www.google.com", "5"), false); Assert.AreEqual(worker.SaveInConfig(), false); Assert.AreEqual(worker.RemoveFromConfig(0), true); Assert.AreEqual(worker.RemoveFromConfig(2), true); Assert.AreEqual(worker.RemoveFromConfig(-1), false); Assert.AreEqual(worker.RemoveFromConfig(11), false); }
public void OptionsToWork(String[] keyPress) { if (keyPress == null) { throw new ArgumentNullException("Введено пустое значение команды"); } string command = ""; string option; if (keyPress.Length > 2) { option = keyPress[0] + " " + keyPress[1]; command = keyPress.Skip(2).Aggregate((x, y) => x + ' ' + y); } else { option = keyPress.Aggregate((x, y) => x + " " + y); } switch (option) { case KeyOptions.Add: { if (!_inputs.VerifyString(ref command)) { _outMess.PrintMessage("значение при добавлении не может быть пустым, "); } _outMess.PrintMessage("вызовите справку или ввидите корректное значение для добавления хоста", "\n", false); CommandAdd(command); OptionsToWork(_inputs.ValuesFromUi()); break; } case KeyOptions.Quit: _outMess.PrintMessage("Приложение завершает свою работу"); Console.CancelKeyPress -= KeyPress; Thread.Sleep(1000); Environment.Exit(0); break; case KeyOptions.Start: _outMess.PrintMessage(KeyOptions.HelloMessage); break; case KeyOptions.Ping: { if (!CommandPing(command)) { _outMess.PrintMessage("Неверная команда для старта пингования"); } Console.CancelKeyPress += KeyPress; OptionsToWork(_inputs.ValuesFromUi()); break; } case KeyOptions.Show: { try { CommandShow(); } catch (NotImplementedException e) { _outMess.PrintMessage(e.Message); } finally { OptionsToWork(_inputs.ValuesFromUi()); } break; } case KeyOptions.Help: { _outMess.PrintMessage(KeyOptions.GetHelpOptions().Aggregate((a, b) => $"{a}\n{b}"), "\n", false); OptionsToWork(_inputs.ValuesFromUi()); break; } case KeyOptions.Remove: { if (!_inputs.VerifyString(ref command, "[", "]")) { _outMess.PrintMessage("Введенные данные не верны"); } int index; if (Int32.TryParse(command, out index)) { _outMess.PrintMessage(_worker.RemoveFromConfig(index) ? "Протокол удалён" : "Ошибка удаления"); } else { _outMess.PrintMessage("Вы ввели неверный параметр, пожалуйста пробуйте ввести заново"); } OptionsToWork(_inputs.ValuesFromUi()); break; } case KeyOptions.Stop: _pinger.StopWork(); _outMess.PrintMessage("Введите процесс опроса остановлен, введите команду:"); OptionsToWork((_inputs.ValuesFromUi())); break; default: _outMess.PrintMessage( "Неизвестная опция! Повторите ввод или наберите [pinger -help] для вызова справки", "\n", true); OptionsToWork(_inputs.ValuesFromUi()); break; } }