You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.7 KiB

  1. using Marketing.FunctionalTests.Base;
  2. using Microsoft.eShopOnContainers.Services.Locations.API.ViewModel;
  3. using Microsoft.eShopOnContainers.Services.Marketing.API.Dto;
  4. using Newtonsoft.Json;
  5. using System.Collections.Generic;
  6. using System.Net.Http;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Xunit;
  10. namespace Marketing.FunctionalTests
  11. {
  12. public class MarketingScenarios : MarketingScenariosBase
  13. {
  14. [Fact]
  15. public async Task Set_new_user_location_and_get_location_campaign_by_user_id()
  16. {
  17. using (var locationsServer = new LocationsScenariosBase().CreateServer())
  18. using (var marketingServer = new MarketingScenariosBase().CreateServer())
  19. {
  20. var location = new LocationRequest
  21. {
  22. Longitude = -122.315752,
  23. Latitude = 47.60461
  24. };
  25. var content = new StringContent(JsonConvert.SerializeObject(location),
  26. Encoding.UTF8, "application/json");
  27. // GIVEN a new location of user is created
  28. await locationsServer.CreateClient()
  29. .PostAsync(LocationsScenariosBase.Post.AddNewLocation, content);
  30. await Task.Delay(300);
  31. //Get campaing from Marketing.API
  32. var campaignsResponse = await marketingServer.CreateClient()
  33. .GetAsync(CampaignScenariosBase.Get.Campaigns);
  34. var responseBody = await campaignsResponse.Content.ReadAsStringAsync();
  35. var campaigns = JsonConvert.DeserializeObject<List<CampaignDTO>>(responseBody);
  36. Assert.True(campaigns.Count > 0);
  37. }
  38. }
  39. }
  40. }