98 lines
3.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|