public void NFCeModel_EnviarNota_Sucesso()
        {
            // Arrange

            var configuracaoServiceMock = new Mock <IConfiguracaoService>();

            configuracaoServiceMock
            .Setup(m => m.GetConfiguracao())
            .Returns(new ConfiguracaoEntity());

            var emissorServiceMock = new Mock <IEmissorService>();

            emissorServiceMock
            .Setup(m => m.GetEmissor())
            .Returns(new Emissor(string.Empty, string.Empty, "98586321444578", string.Empty, string.Empty, string.Empty,
                                 "Regime Normal",
                                 new Endereco(string.Empty, string.Empty, string.Empty, "BRASILIA", string.Empty, "DF"),
                                 string.Empty));

            var produtoServiceMock = new Mock <IProdutoService>();

            produtoServiceMock
            .Setup(m => m.GetAll())
            .Returns(new List <ProdutoEntity>()
            {
                new ProdutoEntity()
                {
                    Id            = 1,
                    ValorUnitario = 65,
                    Codigo        = "0001",
                    Descricao     = "Botijão P13",
                    GrupoImpostos = new GrupoImpostos()
                    {
                        Id        = 1,
                        CFOP      = "5656",
                        Descricao = "Gás Venda",
                        Impostos  = _notaFiscalFixture.Impostos
                    },
                    GrupoImpostosId  = 1,
                    NCM              = "27111910",
                    UnidadeComercial = "UN"
                }
            });

            var dialogService       = new Mock <IDialogService>().Object;
            var notaFiscalService   = new Mock <IEnviaNotaFiscalService>().Object;
            var configuracaoService = configuracaoServiceMock.Object;
            var emissorService      = emissorServiceMock.Object;
            var produtoService      = produtoServiceMock.Object;



            var enviarNotaController = new NotaFiscal.ViewModel.EnviarNotaController(dialogService, notaFiscalService,
                                                                                     configuracaoService, emissorService, produtoService);

            // Act

            enviarNotaController.EnviarNota(_notaFiscalFixture.NFCeModel, Modelo.Modelo65).Wait();
        }
        public async System.Threading.Tasks.Task NFeModel_EnviarNota_ArgumentExceptionValorTotalInválido()
        {
            // Arrange

            var configuracaoServiceMock = new Mock <IConfiguracaoService>();

            configuracaoServiceMock
            .Setup(m => m.GetConfiguracao())
            .Returns(new ConfiguracaoEntity());

            var emissorServiceMock = new Mock <IEmissorService>();

            emissorServiceMock
            .Setup(m => m.GetEmissor())
            .Returns(new Emissor(string.Empty, string.Empty, "98586321444578", string.Empty, string.Empty, string.Empty,
                                 "Regime Normal",
                                 new Endereco(string.Empty, string.Empty, string.Empty, "BRASILIA", string.Empty, "DF"),
                                 string.Empty));

            var produtoServiceMock = new Mock <IProdutoService>();

            produtoServiceMock
            .Setup(m => m.GetAll())
            .Returns(new List <ProdutoEntity>()
            {
                new ProdutoEntity()
                {
                    Id            = 1,
                    ValorUnitario = 65,
                    Codigo        = "0001",
                    Descricao     = "Botijão P13",
                    GrupoImpostos = new GrupoImpostos()
                    {
                        Id        = 1,
                        CFOP      = "5656",
                        Descricao = "Gás Venda",
                        Impostos  = _notaFiscalFixture.Impostos
                    },
                    GrupoImpostosId  = 1,
                    NCM              = "27111910",
                    UnidadeComercial = "UN"
                }
            });

            var dialogService       = new Mock <IDialogService>().Object;
            var notaFiscalService   = new Mock <IEnviaNotaFiscalService>().Object;
            var configuracaoService = configuracaoServiceMock.Object;
            var emissorService      = emissorServiceMock.Object;
            var produtoService      = produtoServiceMock.Object;

            var enviarNotaController = new NotaFiscal.ViewModel.EnviarNotaController(dialogService, notaFiscalService,
                                                                                     configuracaoService, emissorService, produtoService);

            // Act

            await Assert.ThrowsAnyAsync <ArgumentException>(() => enviarNotaController.EnviarNota(_notaFiscalFixture.NFeTotalInvalido, Modelo.Modelo55));
        }