Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }