public void ConfigCommandHandler_IsHandling()
        {
            var mockApiAuthCredentialsRepository = new Mock <IApiAuthCredentialsRepository>();
            var mockPresenter = new Mock <IPresenter>();
            var mockLogger    = new Mock <ILogger>();

            ApiAuthCrediancials resultEntity = null;
            string displayMessage            = "";

            mockApiAuthCredentialsRepository
            .Setup(x => x.Add(It.IsAny <ApiAuthCrediancials>()))
            .Callback <ApiAuthCrediancials>(c => resultEntity = c);

            mockPresenter
            .Setup(x => x.DisplayMessage(It.IsAny <string>()))
            .Callback <string>(m => displayMessage = m);

            var args = new string[] { "config", "--username", "YOUR USERNAME", "--password", "YOUR PASSWORD" };

            var configCommandHandler = new ConfigCommandHandler(mockApiAuthCredentialsRepository.Object,
                                                                mockPresenter.Object,
                                                                mockLogger.Object);

            configCommandHandler.Handle(args);

            Assert.Equal("YOUR USERNAME", resultEntity.UserName);
            Assert.Equal("YOUR PASSWORD", resultEntity.Password);
            Assert.Equal("Configuration saved successfully.", displayMessage);
        }
        public void ConfigCommandHandler_ThrowsIfBadParams(params string[] args)
        {
            var mockApiAuthCredentialsRepository = new Mock <IApiAuthCredentialsRepository>();
            var mockPresenter = new Mock <IPresenter>();
            var mockLogger    = new Mock <ILogger>();

            var configCommandHandler = new ConfigCommandHandler(mockApiAuthCredentialsRepository.Object,
                                                                mockPresenter.Object,
                                                                mockLogger.Object);

            Exception ex = Assert.Throws <PresentableExeption>(() => configCommandHandler.Handle(args));

            Assert.Equal("Invalid arguments.", ex.Message);
        }