public void Success_ArgumentBinding(
            string pCommandLineTemplate,
            TestConsole pConsoleCommandLine,
            InOutService pInOutService,
            [Frozen] IVendorService pVendorService,
            [Frozen] Vendor pVendor)
        {
            // Setup data
            var fCommandLine = string.Format(pCommandLineTemplate,
                                             pVendor.IdCompany,
                                             pVendor.AdministrationCode,
                                             pVendor.CountryCode,
                                             pVendor.CurrencyCode,
                                             String.Join(" ", pVendor.Iban),
                                             pVendor.DefaultLedgerCode,
                                             pVendor.DefaultPaymentTermCode,
                                             pVendor.DefaultVatCode);

            // Setup services
            var pCommand = new CreateVendorCommand(pVendorService, pInOutService, null);

            // Test
            pCommand.Invoke(fCommandLine, pConsoleCommandLine);

            // Validate
            pConsoleCommandLine.Error.ToString().Should().BeNullOrEmpty();
            pVendorService.Received(1);
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.IdCompany.Equals(pVendor.IdCompany)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.AdministrationCode.Equals(pVendor.AdministrationCode)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.CountryCode.Equals(pVendor.CountryCode)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.CurrencyCode.Equals(pVendor.CurrencyCode)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.Iban.SequenceEqual(pVendor.Iban)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.DefaultLedgerCode.Equals(pVendor.DefaultLedgerCode)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.DefaultPaymentTermCode.Equals(pVendor.DefaultPaymentTermCode)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.DefaultVatCode.Equals(pVendor.DefaultVatCode)));
            pVendorService.Received().CreateOrUpdate(Arg.Is <Vendor>(x => x.Name.Equals(pVendor.AdministrationCode)));
        }
        public void Success_ConsolOutput(
            EFormatType pFormat,
            TestConsole pConsoleCommandLine,
            InOutService pInOutService,
            [Frozen] IVendorService pVendorService,
            [Frozen] Vendor pVendor)
        {
            // Setup data
            pVendorService
            .CreateOrUpdate(Arg.Any <Vendor>())
            .Returns(new BaseResultModel <Vendor>(pVendor, null));

            var fCommandLine = $"-c IdCompany -a AdministrationCode --country CountryCode --currency CurrencyCode --iban Iban -f {pFormat}";

            // Setup services
            var pCommand = new CreateVendorCommand(pVendorService, pInOutService, null);

            // Test
            pCommand.Invoke(fCommandLine, pConsoleCommandLine);

            // Validate
            pConsoleCommandLine.Error.ToString().Should().BeNullOrEmpty();
            pVendorService.Received(1);
        }