public void AtivarModoOffline_AlteraConfiguraçãoIsContingencia()
        {
            // Arrange

            var notaFiscalServiceMock = new Mock <IEnviaNotaFiscalService>();
            IEnviaNotaFiscalService       enviaNotaFiscalService       = notaFiscalServiceMock.Object;
            IConfiguracaoRepository       configuracaoRepository       = new ConfiguracaoRepositoryFake();
            IConsultaStatusServicoService consultaStatusServicoService = new Mock <IConsultaStatusServicoService>().Object;
            INotaFiscalRepository         notaFiscalRepository         = new Mock <INotaFiscalRepository>().Object;
            var notaFiscalContingenciaServiceMock = new Mock <IEmiteNotaFiscalContingenciaService>();
            IEmiteNotaFiscalContingenciaService emiteNotaFiscalContingenciaService = notaFiscalContingenciaServiceMock.Object;

            var modoOnlineService = new NotasFiscais.Services.ModoOnlineService(enviaNotaFiscalService, configuracaoRepository, consultaStatusServicoService, notaFiscalRepository, emiteNotaFiscalContingenciaService);

            // Act

            var configuracao = configuracaoRepository.GetConfiguracao();

            configuracao.IsContingencia = false;
            configuracaoRepository.Salvar(configuracao);
            Assert.False(configuracaoRepository.GetConfiguracao().IsContingencia);

            modoOnlineService.AtivarModoOffline("Teste unitário", DateTime.Now);

            configuracao = configuracaoRepository.GetConfiguracao();

            // Assert

            Assert.True(configuracao.IsContingencia);
        }
        public ModoOnlineService(IEnviaNotaFiscalService enviaNotaFiscalService,
                                 IConfiguracaoRepository configuracaoRepository, IConsultaStatusServicoService consultaStatusServicoService,
                                 INotaFiscalRepository notaFiscalRepository, IEmiteNotaFiscalContingenciaService emiteNotaFiscalContingenciaService)
        {
            _notaFiscalRepository         = notaFiscalRepository;
            _configuracaoRepository       = configuracaoRepository;
            _consultaStatusServicoService = consultaStatusServicoService;

            enviaNotaFiscalService.NotaEmitidaEmContingenciaEvent +=
                EnviaNotaFiscalServiceEnviaNotaEmitidaEmContingenciaEvent;
            _emiteNotaFiscalContingenciaService = emiteNotaFiscalContingenciaService;
        }
 public EnviaNotaFiscalService(IConfiguracaoRepository configuracaoRepository,
                               INotaFiscalRepository notaFiscalRepository, ICertificadoRepository certificadoRepository,
                               IConfiguracaoService configuracaoService, IServiceFactory serviceFactory, INFeConsulta nfeConsulta,
                               ICertificateManager certificateManager, IEmiteNotaFiscalContingenciaService emiteNotaFiscalContingenciaService)
 {
     _configuracaoRepository             = configuracaoRepository;
     _notaFiscalRepository               = notaFiscalRepository;
     _certificadoRepository              = certificadoRepository;
     _configuracaoService                = configuracaoService;
     _serviceFactory                     = serviceFactory;
     _nfeConsulta                        = nfeConsulta;
     _certificateManager                 = certificateManager;
     _emiteNotaFiscalContingenciaService = emiteNotaFiscalContingenciaService;
 }
        public void AtivarModoOnline_TransmiteNotasFiscaisEmContingencia()
        {
            var enviaNotaFiscalService            = new Mock <IEnviaNotaFiscalService>().Object;
            var notaFiscalContingenciaServiceMock = new Mock <IEmiteNotaFiscalContingenciaService>();
            IEmiteNotaFiscalContingenciaService emiteNotaFiscalContingenciaService = notaFiscalContingenciaServiceMock.Object;
            IConfiguracaoRepository             configuracaoRepository             = new ConfiguracaoRepositoryFake();
            IConsultaStatusServicoService       consultaStatusServicoService       = new Mock <IConsultaStatusServicoService>().Object;
            INotaFiscalRepository notaFiscalRepository = new Mock <INotaFiscalRepository>().Object;

            var modoOnlineService = new NotasFiscais.Services.ModoOnlineService(enviaNotaFiscalService,
                                                                                configuracaoRepository, consultaStatusServicoService, notaFiscalRepository,
                                                                                emiteNotaFiscalContingenciaService);

            modoOnlineService.AtivarModoOnline();

            notaFiscalContingenciaServiceMock.Verify(n => n.TransmitirNotasFiscalEmContingencia(), Times.Once);
        }