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}"); } }
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); }
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); }
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); }
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"); } }
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); }
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); }