Ejemplo n.º 1
0
        private static async Task RunSpecialCharactersTest(ADLSAdapter adapter)
        {
            var corpus = new CdmCorpusDefinition();

            corpus.Storage.Mount("adls", adapter);
            corpus.Storage.DefaultNamespace = "adls";
            try
            {
                var manifest = await corpus.FetchObjectAsync <CdmManifestDefinition>("default.manifest.cdm.json");

                await manifest.FileStatusCheckAsync();

                Assert.AreEqual(1, manifest.Entities.Count);
                Assert.AreEqual(2, manifest.Entities[0].DataPartitions.Count);
                Assert.AreEqual(
                    "TestEntity-With=Special Characters/year=2020/TestEntity-partition-With=Special Characters-0.csv",
                    manifest.Entities[0].DataPartitions[0].Location);

                Assert.AreEqual(
                    "TestEntity-With=Special Characters/year=2020/TestEntity-partition-With=Special Characters-1.csv",
                    manifest.Entities[0].DataPartitions[1].Location);
            }
            catch (Exception e)
            {
                Assert.Fail(e.Message);
            }
        }
Ejemplo n.º 2
0
        public void TestLoadingAndSavingEndpointInConfig()
        {
            // Mount from config
            var config = TestHelper.GetInputFileContent(testSubpath, nameof(TestLoadingAndSavingEndpointInConfig), "config.json");
            var corpus = new CdmCorpusDefinition();

            corpus.Storage.MountFromConfig(config);
            Assert.Null(((ADLSAdapter)corpus.Storage.FetchAdapter("adlsadapter1")).Endpoint);
            Assert.AreEqual(AzureCloudEndpoint.AzurePublic, ((ADLSAdapter)corpus.Storage.FetchAdapter("adlsadapter2")).Endpoint);
            Assert.AreEqual(AzureCloudEndpoint.AzureChina, ((ADLSAdapter)corpus.Storage.FetchAdapter("adlsadapter3")).Endpoint);
            Assert.AreEqual(AzureCloudEndpoint.AzureGermany, ((ADLSAdapter)corpus.Storage.FetchAdapter("adlsadapter4")).Endpoint);
            Assert.AreEqual(AzureCloudEndpoint.AzureUsGovernment, ((ADLSAdapter)corpus.Storage.FetchAdapter("adlsadapter5")).Endpoint);
            try
            {
                var configSnakeCase = TestHelper.GetInputFileContent(testSubpath, nameof(TestLoadingAndSavingEndpointInConfig), "config-SnakeCase.json");
                var corpusSnakeCase = new CdmCorpusDefinition();
                corpusSnakeCase.Storage.MountFromConfig(configSnakeCase);
                Assert.Fail("Expected RuntimeException for config.json using endpoint value in snake case.");
            }
            catch (Exception ex)
            {
                String message = "Endpoint value should be a string of an enumeration value from the class AzureCloudEndpoint in Pascal case.";
                Assert.AreEqual(message, ex.Message);
            }
        }
Ejemplo n.º 3
0
        private static async Task TestRemoveRelationship(SymsAdapter adapter, string relationshipName)
        {
            await adapter.WriteAsync($"{databaseName}/{databaseName}.manifest.cdm.json/relationships/{relationshipName}", null);

            try
            {
                await adapter.ReadAsync($"{databaseName}/{databaseName}.manifest.cdm.json/relationships/{relationshipName}");

                Assert.Fail();
            }
            catch (Exception e)
            {
                if (!e.Message.Contains("Not Found"))
                {
                    throw;
                }
            }
        }
Ejemplo n.º 4
0
        private static async Task TestRemoveTable(SymsAdapter adapter, string tableName)
        {
            await adapter.WriteAsync($"{databaseName}/{tableName}.cdm.json", null);

            try
            {
                await adapter.ReadAsync($"{databaseName}/{tableName}.cdm.json");

                Assert.Fail();
            }
            catch (Exception e)
            {
                if (!e.Message.Contains("Not Found"))
                {
                    throw;
                }
            }
        }
Ejemplo n.º 5
0
        public async Task TestManifestFoundationImport()
        {
            var corpus = TestHelper.GetLocalCorpus(testsSubpath, nameof(TestManifestFoundationImport));

            var callback = new EventCallback
            {
                Invoke = (CdmStatusLevel statusLevel, string message1) =>
                {
                    if (statusLevel >= CdmStatusLevel.Warning)
                    {
                        Assert.Fail(message1);
                    }
                }
            };

            corpus.SetEventCallback(callback);

            var cdmManifest = await corpus.FetchObjectAsync <CdmManifestDefinition>(PersistenceLayer.ModelJsonExtension, corpus.Storage.FetchRootFolder("local"));
        }
Ejemplo n.º 6
0
        public async Task TestManifestFoundationImport()
        {
            var corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestManifestFoundationImport");

            var callback = new EventCallback
            {
                Invoke = (CdmStatusLevel statusLevel, string message1) =>
                {
                    if (statusLevel >= CdmStatusLevel.Error)
                    {
                        Assert.Fail(message1);
                    }
                }
            };

            corpus.SetEventCallback(callback);

            var cdmManifest = await corpus.FetchObjectAsync <CdmManifestDefinition>("model.json", corpus.Storage.FetchRootFolder("local"));
        }
Ejemplo n.º 7
0
        public async Task TestHttpsHostname()
        {
            AdlsTestHelper.CheckADLSEnvironment();
            string filename    = $"HTTPSWriteTest/{Environment.GetEnvironmentVariable("USERNAME")}_{Environment.GetEnvironmentVariable("COMPUTERNAME")}_CSharp.txt";
            var    adlsAdapter = AdlsTestHelper.CreateAdapterWithSharedKey(null, false, true);

            try
            {
                await adlsAdapter.ReadAsync(filename);

                await adlsAdapter.ComputeLastModifiedTimeAsync(filename);
            }
            catch (UriFormatException ex)
            {
                Assert.Fail(ex.Message);
            }
            catch (Exception)
            {
            }
        }
Ejemplo n.º 8
0
        public void TestHostnameWithLeadingProtocol()
        {
            var host1        = "https://storageaccount.dfs.core.windows.net";
            var adlsAdapter1 = new ADLSAdapter(host1, "root-without-slash", string.Empty);
            var adapterPath  = "https://storageaccount.dfs.core.windows.net/root-without-slash/a/1.csv";
            var corpusPath1  = adlsAdapter1.CreateCorpusPath(adapterPath);

            Assert.AreEqual("https://storageaccount.dfs.core.windows.net", adlsAdapter1.Hostname);
            Assert.AreEqual("/a/1.csv", corpusPath1);
            Assert.AreEqual(adapterPath, adlsAdapter1.CreateAdapterPath(corpusPath1));

            var host2        = "HttPs://storageaccount.dfs.core.windows.net";
            var adlsAdapter2 = new ADLSAdapter(host2, "root-without-slash", string.Empty);
            var corpusPath2  = adlsAdapter2.CreateCorpusPath(adapterPath);

            Assert.AreEqual("HttPs://storageaccount.dfs.core.windows.net", adlsAdapter2.Hostname);
            Assert.AreEqual("/a/1.csv", corpusPath2);
            Assert.AreEqual(adapterPath, adlsAdapter2.CreateAdapterPath(corpusPath2));

            try
            {
                var host3        = "http://storageaccount.dfs.core.windows.net";
                var adlsAdapter3 = new ADLSAdapter(host3, "root-without-slash", string.Empty);
                Assert.Fail("Expected Exception for using a http:// hostname.");
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex is ArgumentException);
            }

            try
            {
                var host4        = "https://bar:baz::]/foo/";
                var adlsAdapter4 = new ADLSAdapter(host4, "root-without-slash", string.Empty);
                Assert.Fail("Expected Exception for using and invalid hostname.");
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex is ArgumentException);
            }
        }
Ejemplo n.º 9
0
        public void TestConfigAndUpdateConfigWithoutAuthenticationDetails()
        {
            var adlsAdapter = new ADLSAdapter();

            try
            {
                var config = new JObject
                {
                    { "root", "root" },
                    { "hostname", "hostname" },
                    { "tenant", "tenant" },
                    { "clientId", "clientId" }
                };
                adlsAdapter.UpdateConfig(config.ToString());
                adlsAdapter.Secret    = "secret";
                adlsAdapter.SharedKey = "sharedKey";
            }
            catch
            {
                Assert.Fail("AdlsAdapter initialized without secret shouldn't throw exception when updating config.");
            }
        }
Ejemplo n.º 10
0
        public void TestConfigAndUpdateConfigWithoutAuthenticationDetails()
        {
            var config = new JObject
            {
                { "root", "root" },
                { "endpoint", "endpoint" },
                { "tenant", "tenant" },
                { "clientId", "clientId" }
            };

            try
            {
                var SymsAdapter1 = new SymsAdapter();
                SymsAdapter1.UpdateConfig(config.ToString());
                SymsAdapter1.ClientId      = "clientId";
                SymsAdapter1.Secret        = "secret";
                SymsAdapter1.TokenProvider = new FakeTokenProvider();
            }
            catch
            {
                Assert.Fail("SymsAdapter initialized without secret shouldn't throw exception when updating config.");
            }

            try
            {
                var SymsAdapter2 = new SymsAdapter();
                SymsAdapter2.ClientId      = "clientId";
                SymsAdapter2.Secret        = "secret";
                SymsAdapter2.TokenProvider = new FakeTokenProvider();
                SymsAdapter2.UpdateConfig(config.ToString());
            }
            catch
            {
                Assert.Fail("SymsAdapter initialized without secret shouldn't throw exception when updating config.");
            }
        }