public async Task BusinessPartnerService_ShouldBeAddTaskInQueue()
        {
            var businessPartnerValidations = new List <IBusinessPartnerValidation>
            {
                new BusinessPartnerForArValidation(Mock.Of <ILogger <BusinessPartnerForArValidation> >()),
                new BusinessPartnerForUsValidation(Mock.Of <ILogger <BusinessPartnerForUsValidation> >())
            };

            var loggerMock         = new Mock <ILogger <BusinessPartnerService> >();
            var queuingServiceMock = new Mock <IQueuingService>();

            var sapConfigMock = new Mock <IOptions <SapConfig> >();

            sapConfigMock.Setup(x => x.Value)
            .Returns(new SapConfig
            {
                SapServiceConfigsBySystem = new Dictionary <string, SapServiceConfig>
                {
                    { "AR", new SapServiceConfig {
                          CompanyDB             = "CompanyDb",
                          Password              = "******",
                          UserName              = "******",
                          BaseServerUrl         = "http://123.123.123/",
                          BusinessPartnerConfig = new BusinessPartnerConfig
                          {
                              Endpoint = "BusinessPartners"
                          }
                      } },
                    { "US", new SapServiceConfig {
                          CompanyDB             = "CompanyDb",
                          Password              = "******",
                          UserName              = "******",
                          BaseServerUrl         = "http://123.123.123/",
                          BusinessPartnerConfig = new BusinessPartnerConfig
                          {
                              Endpoint = "BusinessPartners"
                          }
                      } }
                }
            });

            var businessPartnerService = new BusinessPartnerService(queuingServiceMock.Object, loggerMock.Object, sapConfigMock.Object, businessPartnerValidations);

            var dopplerUser = new DopplerUserDto
            {
                Id              = 1,
                FirstName       = "Juan",
                LastName        = "Perez",
                FederalTaxID    = "27111111115",
                PlanType        = 1,
                BillingSystemId = 2
            };

            await businessPartnerService.CreateOrUpdateBusinessPartner(dopplerUser);

            queuingServiceMock.Verify(x => x.AddToTaskQueue(It.IsAny <SapTask>()), Times.Once);
        }
        public void BusinessPartnerService_ShouldBeThrowsValidationException_WhenDopplerUserFirstNameAndLastNameAreNotValidAndSapAr()
        {
            var businessPartnerValidations = new List <IBusinessPartnerValidation>
            {
                new BusinessPartnerForArValidation(Mock.Of <ILogger <BusinessPartnerForArValidation> >()),
                new BusinessPartnerForUsValidation(Mock.Of <ILogger <BusinessPartnerForUsValidation> >())
            };

            var loggerMock         = new Mock <ILogger <BusinessPartnerService> >();
            var queuingServiceMock = new Mock <IQueuingService>();

            var sapConfigMock = new Mock <IOptions <SapConfig> >();

            sapConfigMock.Setup(x => x.Value)
            .Returns(new SapConfig
            {
                SapServiceConfigsBySystem = new Dictionary <string, SapServiceConfig>
                {
                    { "AR", new SapServiceConfig {
                          CompanyDB             = "CompanyDb",
                          Password              = "******",
                          UserName              = "******",
                          BaseServerUrl         = "http://123.123.123/",
                          BusinessPartnerConfig = new BusinessPartnerConfig
                          {
                              Endpoint = "BusinessPartners"
                          }
                      } }
                }
            });

            var businessPartnerService = new BusinessPartnerService(queuingServiceMock.Object, loggerMock.Object, sapConfigMock.Object, businessPartnerValidations);

            var dopplerUser = new DopplerUserDto
            {
                Id                 = 1,
                FirstName          = "",
                LastName           = "",
                FederalTaxID       = "123",
                PlanType           = 1,
                BillingCountryCode = "AR",
                BillingSystemId    = 9
            };

            var ex = Assert.ThrowsAsync <ValidationException>(() => businessPartnerService.CreateOrUpdateBusinessPartner(dopplerUser));

            Assert.Equal("Invalid first name or last name.", ex.Result.Message);
        }
Exemple #3
0
        public void BusinessPartnerService_ShouldBeThrowsArgumentException_WhenCountryCodeNotAROrUS()
        {
            var businessPartnerValidations = new List <IBusinessPartnerValidation>
            {
                new BusinessPartnerForArValidation(Mock.Of <ILogger <BusinessPartnerForArValidation> >()),
                new BusinessPartnerForUsValidation(Mock.Of <ILogger <BusinessPartnerForUsValidation> >())
            };

            var loggerMock         = new Mock <ILogger <BusinessPartnerService> >();
            var queuingServiceMock = new Mock <IQueuingService>();

            var sapConfigMock = new Mock <IOptions <SapConfig> >();

            sapConfigMock.Setup(x => x.Value)
            .Returns(new SapConfig
            {
                SapServiceConfigsBySystem = new Dictionary <string, SapServiceConfig>
                {
                    { "AR", new SapServiceConfig {
                          CompanyDB             = "CompanyDb",
                          Password              = "******",
                          UserName              = "******",
                          BaseServerUrl         = "http://123.123.123/",
                          BusinessPartnerConfig = new BusinessPartnerConfig
                          {
                              Endpoint = "BusinessPartners"
                          }
                      } }
                }
            });

            var businessPartnerService = new BusinessPartnerService(queuingServiceMock.Object, loggerMock.Object, sapConfigMock.Object, businessPartnerValidations);

            var dopplerUser = new DopplerUserDto
            {
                Id                 = 1,
                FederalTaxID       = "27111111115",
                PlanType           = 1,
                BillingCountryCode = "MX",
                BillingSystemId    = 16
            };

            var ex = Assert.ThrowsAsync <ArgumentException>(() => businessPartnerService.CreateOrUpdateBusinessPartner(dopplerUser));

            Assert.Equal("sapSystem (Parameter 'The sapSystem '' is not supported.')", ex.Result.Message);
        }