using Marketing.FunctionalTests.Base;
|
|
using Microsoft.eShopOnContainers.Services.Locations.API.ViewModel;
|
|
using Microsoft.eShopOnContainers.Services.Marketing.API.Dto;
|
|
using Newtonsoft.Json;
|
|
using System.Collections.Generic;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Xunit;
|
|
|
|
namespace Marketing.FunctionalTests
|
|
{
|
|
public class MarketingScenarios : MarketingScenariosBase
|
|
{
|
|
[Fact]
|
|
public async Task Set_new_user_location_and_get_location_campaign_by_user_id()
|
|
{
|
|
using (var locationsServer = new LocationsScenariosBase().CreateServer())
|
|
using (var marketingServer = new MarketingScenariosBase().CreateServer())
|
|
{
|
|
var location = new LocationRequest
|
|
{
|
|
Longitude = -122.315752,
|
|
Latitude = 47.60461
|
|
};
|
|
var content = new StringContent(JsonConvert.SerializeObject(location),
|
|
Encoding.UTF8, "application/json");
|
|
|
|
// GIVEN a new location of user is created
|
|
await locationsServer.CreateClient()
|
|
.PostAsync(LocationsScenariosBase.Post.AddNewLocation, content);
|
|
|
|
await Task.Delay(300);
|
|
|
|
//Get campaing from Marketing.API
|
|
var campaignsResponse = await marketingServer.CreateClient()
|
|
.GetAsync(CampaignScenariosBase.Get.Campaigns);
|
|
|
|
var responseBody = await campaignsResponse.Content.ReadAsStringAsync();
|
|
var campaigns = JsonConvert.DeserializeObject<List<CampaignDTO>>(responseBody);
|
|
|
|
Assert.True(campaigns.Count > 0);
|
|
}
|
|
}
|
|
}
|
|
}
|