using System.Collections.Generic; using System.Text.Json; using NUnit.Framework; using Strata.Analytics.Biz.Extracts.Export; namespace Strata.Analytics.Test.Unit.Biz.Extracts { [TestFixture] public class ExtractSqlHelperTest { [Test] public void GetFolderPathFromExternalStage_UrlStringOneLevel_GetFilePath() { //Arrange const string urlString = "s3://sdt-dev-tabularreporter/b8018250af34403ebdcc1770714042b2/"; const string expectedString = "b8018250af34403ebdcc1770714042b2"; //Act var externalStageUrlTokens = ExtractSqlHelper.StripS3BucketFromUrl(urlString); //Assert Assert.AreEqual(externalStageUrlTokens.FolderPath, expectedString); } [Test] public void ExtractUrlValue_HasUrlProperty_GetUrlList() { //Arrange var urlList = new List { "someUrl" }; var urlListString = JsonSerializer.Serialize(urlList); List dynamicList = new() { new Dictionary() { { "property", "URL" }, { "property_value", urlListString } } }; //Act var urlValue = ExtractSqlHelper.ExtractUrlValue(dynamicList); //Assert Assert.AreEqual(urlValue, urlList); } [Test] public void GetFolderPathFromExternalStage_UrlStringTwoLevels_GetFilePath() { //Arrange const string urlString = "s3://sdt-dev-tabularreporter/b8018250af34403ebdcc1770714042b2/b8018250af34403ebdcc1770714042b2/"; const string expectedString = "b8018250af34403ebdcc1770714042b2/b8018250af34403ebdcc1770714042b2"; //Act var externalStageUrlTokens = ExtractSqlHelper.StripS3BucketFromUrl(urlString); //Assert Assert.AreEqual(externalStageUrlTokens.FolderPath, expectedString); } [Test] public void GetFolderPathFromExternalStage_UrlStringNoLevels_GetFilePath() { //Arrange const string urlString = "s3://sdt-dev-tabularreporter/"; const string expectedString = ""; //Act var externalStageUrlTokens = ExtractSqlHelper.StripS3BucketFromUrl(urlString); //Assert Assert.AreEqual(externalStageUrlTokens.FolderPath, expectedString); } [Test] public void GetBucketNameFromExternalStage_UrlStringNoLevels_GetBucketName() { //Arrange const string urlString = "s3://sdt-dev-tabularreporter/"; const string expectedString = "sdt-dev-tabularreporter"; //Act var externalStageUrlTokens = ExtractSqlHelper.StripS3BucketFromUrl(urlString); //Assert Assert.AreEqual(externalStageUrlTokens.BucketName, expectedString); } [Test] public void GetBucketNameFromExternalStage_UrlStringOneLevel_GetBucketName() { //Arrange const string urlString = "s3://sdt-dev-tabularreporter/b8018250af34403ebdcc1770714042b2/"; const string expectedString = "sdt-dev-tabularreporter"; //Act var externalStageUrlTokens = ExtractSqlHelper.StripS3BucketFromUrl(urlString); //Assert Assert.AreEqual(externalStageUrlTokens.BucketName, expectedString); } } }