public InteractorEditContact(IEditContactController controller, IEditContactModelCreator modelCreator, IValidationEditContact validation)
        {
            _controller   = controller ?? throw new ArgumentNullException(nameof(controller));
            _validation   = validation ?? throw new ArgumentNullException(nameof(validation));
            _modelCreator = modelCreator ?? throw new ArgumentNullException(nameof(modelCreator));

            _controller.OnRecieveModel += ControllerOnMessage;
        }
        public void SendPositiveTest()
        {
            _connectionMock.Setup(f => f.CreateContact(It.IsAny <UserInfoDTO>())).Returns(new ContactMock());
            _controller = new EditContactController(_connectionMock.Object, _repo, _parseMethod);

            var result = false;

            _controller.OnRecieveModel += _ =>
            {
                result = true;
            };
            _controller.Send(new EditContactModelCreator(_repo).GetRequestModel(new EditContactEntity("", "", "", "", "")));

            Thread.Sleep(500);

            _connectionMock.Verify(f => f.CreateContact(It.IsAny <UserInfoDTO>()), Times.Once);
            Assert.IsTrue(result);
        }
        public void SendWhileProcessingTest()
        {
            _connectionMock.Setup(f => f.CreateContact(It.IsAny <UserInfoDTO>())).Returns(new ContactMock());
            _controller = new EditContactController(_connectionMock.Object, _repo, _parseMethod);
            _controller.GetType().GetRuntimeFields().First(f => f.Name.Equals("_currentRecieveStatus")).SetValue(_controller, EControllerStatus.Processing);

            var result = false;

            _controller.OnRecieveModel += _ =>
            {
                result = true;
            };
            _controller.Send(new EditContactModelCreator(_repo).GetRequestModel(new EditContactEntity("", "", "", "", "")));

            Thread.Sleep(500);

            _connectionMock.Verify(f => f.CreateContact(It.IsAny <UserInfoDTO>()), Times.Once);
            Assert.IsFalse(result);
        }
 public void CtorTest_Negative(IEditContactController controller, IEditContactModelCreator modelCreator, IValidationEditContact validation, string testName)
 {
     Assert.Throws <ArgumentNullException>(() => new InteractorEditContact(controller, modelCreator, validation));
 }
 public void CtorParseMethodNegativeTest()
 {
     Assert.Throws <ArgumentNullException>(() => _controller = new EditContactController(_connectionMock.Object, _repo, null));
 }
 public void CtorConnectionNegativeTest()
 {
     Assert.Throws <ArgumentNullException>(() => _controller = new EditContactController(null, _repo, _parseMethod));
 }