Files
analytics/tests/Strata.Analytics.Test.Unit/Biz/Extracts/ExtractSqlHelperTest.cs
T
2026-06-23 11:18:54 -05:00

98 lines
3.4 KiB
C#

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<string> { "someUrl" };
var urlListString = JsonSerializer.Serialize(urlList);
List<dynamic> dynamicList = new() { new Dictionary<string, object>() { { "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);
}
}
}