示例#1
0
        public async Task CreateTenantPreferences(string identifier, TestShippingPreferences preferences)
        {
            //create handling and flat rate generic groups
            await CreateEmptyGroups(identifier, identifier);

            ShippingPreferencesRequest request = new ShippingPreferencesRequest
            {
                CreatedBy = "Data factory tool",
                ShippingConfigurationExternalId = identifier,
                FlatRateScheduleGroupExternalId = identifier,
                HandlingScheduleGroupExternalId = identifier,
                UseCustomerCarrier = preferences.UseCustomerCarrier,
                FreeFreightForNonContiguousStates = preferences.FreeFreightForNonContiguousStates,
                FreeFreightRules  = MapTenantFreeFreightRules(preferences.FreeFreightRuless),
                FreeHandlingRules = MapFreeHandlingRules(preferences.FreeHandlingRules),
                UseBestRate       = preferences.UseBestRate,
                UpdatedBy         = "Data factory tool"
            };
            var response = await Client.ShippingPreferences.Create(request);

            if (!response.Success)
            {
                throw new Exception($"Tenant shipping preferenwce cannot be added ~> error code: {response.StatusCode}");
            }
        }
示例#2
0
        protected override async Task TestScenarioSetUp(ShippingPreferenceTestData data)
        {
            //create shipping configuration
            ShippingConfigurationRequest shippingConfigurationRequest = new ShippingConfigurationRequest
            {
                CreatedBy          = "temporal request",
                ExternalIdentifier = data.ShippingConfigurationExtId,
                ServiceLevels      = new List <SCServiceLevel>
                {
                    new SCServiceLevel
                    {
                        Code                = (int)ServiceLevelCodesEnum.Ground,
                        Amount              = 200,
                        CarrierCode         = "nothing",
                        IsEnabled           = true,
                        Label               = "temporal label",
                        SortOrder           = 2,
                        CarrierRateDiscount = 2
                    }
                }
            };
            await Client.ShippingConfigurations.Create(shippingConfigurationRequest);

            //create flat rate schedule group
            FlatRateScheduleGroupsRequest flatRateScheduleGroupsRequest = new FlatRateScheduleGroupsRequest
            {
                CreatedBy          = "temporal request",
                ExternalIdentifier = data.FlatRateScheduleGroupExtId,
                Name = "temporal name"
            };
            await Client.FlatRateScheduleGroups.Create(flatRateScheduleGroupsRequest);

            //create handling schedule group
            HandlingScheduleGroupRequest handlingScheduleGroupRequest = new HandlingScheduleGroupRequest
            {
                CreatedBy          = "temporal request",
                ExternalIdentifier = data.HandlingScheduleGroupExtId,
                Name = "temporal name"
            };
            await Client.HandlingScheduleGroups.Create(handlingScheduleGroupRequest);

            //create account master shipping preference
            ShippingPreferencesRequest shippingAccountMasterPreferencesRequest = new ShippingPreferencesRequest
            {
                CreatedBy = "temporal request",
                ShippingConfigurationExternalId = data.ShippingConfigurationExtId,
                FlatRateScheduleGroupExternalId = data.FlatRateScheduleGroupExtId,
                HandlingScheduleGroupExternalId = data.HandlingScheduleGroupExtId,
                UseCustomerCarrier = false,
                FreeFreightRules   = new List <SFreeFreightRule>
                {
                    new SFreeFreightRule
                    {
                        ServiceLevelCode = (int)ServiceLevelCodesEnum.Showroom,
                        ThresholdAmount  = 2
                    }
                },
            };
            await Client.ShippingPreferences.Create(shippingAccountMasterPreferencesRequest);
        }
示例#3
0
        public async Task POST_ShippingPreference_Invalid()
        {
            string identifier = TestContext.TestName;

            ShippingPreferencesRequest request = new ShippingPreferencesRequest
            {
                //does not have the CreatedBy porperty
                FreeFreightRules = new List <SFreeFreightRule>
                {
                    new SFreeFreightRule
                    {
                        ServiceLevelCode = 0,
                        ThresholdAmount  = 0
                    }
                },
                UseCustomerCarrier = true,
                ShippingConfigurationExternalId = identifier,
                FlatRateScheduleGroupExternalId = identifier,
                HandlingScheduleGroupExternalId = identifier
            };

            HttpEssResponse <ShippingPreferencesResponse> response = await Client.ShippingPreferences.Create(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(422, response.StatusCode);
            Assert.IsFalse(response.Success);
            Assert.IsNull(response.Result);
        }
示例#4
0
        public async Task PUT_ShippingPreference_NotFound()
        {
            string identifier = TestContext.TestName;
            var    testData   = new ShippingPreferenceTestData
            {
                AccountMasterExtId         = identifier,
                FlatRateScheduleGroupExtId = identifier,
                HandlingScheduleGroupExtId = identifier,
                ShippingConfigurationExtId = identifier
            };

            //test scenario setup
            await TestScenarioCleanUp(testData);

            ShippingPreferencesRequest request = new ShippingPreferencesRequest
            {
                UpdatedBy        = "PUT request",
                FreeFreightRules = new List <SFreeFreightRule>
                {
                    new SFreeFreightRule
                    {
                        ServiceLevelCode = 0,
                        ThresholdAmount  = 0
                    }
                },
                UseCustomerCarrier = true,
                ShippingConfigurationExternalId = identifier,
                FlatRateScheduleGroupExternalId = identifier,
                HandlingScheduleGroupExternalId = identifier
            };

            HttpEssResponse <ShippingPreferencesResponse> response = await Client.ShippingPreferences.Update(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(404, response.StatusCode);
            Assert.IsFalse(response.Success);
            Assert.IsNull(response.Result);
        }
示例#5
0
        public async Task AddTenantPreferences(TestShippingExternals externalIds, TestShippingPreferences preferences)
        {
            //create handling and flat rate generic groups
            await CreateEmptyGroups(externalIds.FlatRateGroupExtId, externalIds.HandlingGroupExtId);

            ShippingPreferencesRequest request = new ShippingPreferencesRequest
            {
                CreatedBy          = "Data factory tool",
                UseCustomerCarrier = preferences.UseCustomerCarrier,
                FreeFreightRules   = GetFreefreightRules(preferences.FreeFreightRules),
                ShippingConfigurationExternalId   = preferences.ConfigurationExtId,
                FlatRateScheduleGroupExternalId   = externalIds.FlatRateGroupExtId,
                HandlingScheduleGroupExternalId   = externalIds.HandlingGroupExtId,
                FreeFreightForNonContiguousStates = preferences.FreeFreightForNonContiguousStates,
                UseBestRate = preferences.UseBestRate
            };
            var response = await _client.ShippingPreferences.Create(request);

            if (!response.Success)
            {
                throw new Exception("Tenant shipping preference cannot be added");
            }
        }
示例#6
0
        public async Task PUT_ShippingPreference_Success()
        {
            string identifier = TestContext.TestName;
            var    testData   = new ShippingPreferenceTestData
            {
                AccountMasterExtId         = identifier,
                FlatRateScheduleGroupExtId = identifier,
                HandlingScheduleGroupExtId = identifier,
                ShippingConfigurationExtId = identifier
            };

            //test data setup
            await TestScenarioSetUp(testData);

            ShippingPreferencesRequest request = new ShippingPreferencesRequest
            {
                UpdatedBy          = "PUT request",
                UseCustomerCarrier = false,
                ShippingConfigurationExternalId = identifier,
                FlatRateScheduleGroupExternalId = identifier,
                HandlingScheduleGroupExternalId = identifier
            };

            HttpEssResponse <ShippingPreferencesResponse> response = await Client.ShippingPreferences.Update(request);

            //test data clean up
            await TestScenarioCleanUp(testData);

            Assert.IsNotNull(response);
            Assert.AreEqual(200, response.StatusCode);
            Assert.IsTrue(response.Success);
            Assert.IsNotNull(response.Result);

            //put specific validations
            Assert.AreEqual(request.UpdatedBy, response.Result.UpdatedBy);
            Assert.AreEqual(request.UseCustomerCarrier, response.Result.UseCustomerCarrier);
        }
示例#7
0
        public async Task POST_ShippingPreference_Success()
        {
            string externalIdentifier = TestContext.TestName;
            var    testData           = new ShippingPreferenceTestData
            {
                AccountMasterExtId         = externalIdentifier,
                FlatRateScheduleGroupExtId = externalIdentifier,
                HandlingScheduleGroupExtId = externalIdentifier,
                ShippingConfigurationExtId = externalIdentifier
            };

            //create configuration
            ShippingConfigurationRequest shippingConfigurationRequest = new ShippingConfigurationRequest
            {
                CreatedBy          = "temporal request",
                ExternalIdentifier = externalIdentifier,
                ServiceLevels      = new List <SCServiceLevel>
                {
                    new SCServiceLevel
                    {
                        Code        = (int)ServiceLevelCodesEnum.Ground,
                        Amount      = 200,
                        CarrierCode = "nothing",
                        IsEnabled   = true,

                        Label               = "temporal label",
                        SortOrder           = 2,
                        CarrierRateDiscount = 2
                    }
                }
            };
            await Client.ShippingConfigurations.Create(shippingConfigurationRequest);

            //create flat rate schedule group
            FlatRateScheduleGroupsRequest flatRateScheduleGroupsRequest = new FlatRateScheduleGroupsRequest
            {
                CreatedBy          = "temporal request",
                ExternalIdentifier = externalIdentifier,
                Name = "temporal name"
            };
            await Client.FlatRateScheduleGroups.Create(flatRateScheduleGroupsRequest);

            //create handling schedule group
            HandlingScheduleGroupRequest handlingScheduleGroupRequest = new HandlingScheduleGroupRequest
            {
                CreatedBy          = "temporal request",
                ExternalIdentifier = externalIdentifier,
                Name = "temporal name"
            };
            await Client.HandlingScheduleGroups.Create(handlingScheduleGroupRequest);

            ShippingPreferencesRequest request = new ShippingPreferencesRequest
            {
                CreatedBy        = "C# requester",
                FreeFreightRules = new List <SFreeFreightRule>
                {
                    new SFreeFreightRule
                    {
                        ServiceLevelCode = 1,
                        ThresholdAmount  = 1
                    }
                },
                UseCustomerCarrier = true,
                ShippingConfigurationExternalId = externalIdentifier,
                FlatRateScheduleGroupExternalId = externalIdentifier,
                HandlingScheduleGroupExternalId = externalIdentifier
            };

            HttpEssResponse <ShippingPreferencesResponse> response = await Client.ShippingPreferences.Create(request);

            await TestScenarioCleanUp(testData);

            //validations
            Assert.IsNotNull(response);
            Assert.AreEqual(200, response.StatusCode);
            Assert.IsTrue(response.Success);
            Assert.IsNotNull(response.Result);
        }