public async Task CouldCreateRepoAsync()
        {
            var path = TestUtils.GetPath(clear: true);
            var mdm  = new MetadataManager(path);

            var dataPath = new DataPath("~/test/");
            var testRow  = await mdm.CreateRepoAsync(dataPath);

            var testRow1 = await mdm.CreateRepoAsync(dataPath);

            Assert.IsNull(testRow1.PK);

            Assert.IsTrue(testRow.PK != null);
            Console.WriteLine(testRow.PK);
            Assert.AreEqual(1, testRow.ParentId);

            for (int i = 0; i < 100; i++)
            {
                dataPath = new DataPath(dataPath + $"sub{i}/");
                var testRecordSub = await mdm.CreateRepoAsync(dataPath);

                Assert.IsTrue(testRecordSub.PK != null);
                Console.WriteLine(i + " - " + testRecordSub.PK.Length + ": " + testRecordSub.PK);
                Assert.AreEqual(testRow.RepoId, testRecordSub.ParentId);
                testRow = testRecordSub;

                var getRepo = await mdm.GetMetadataRecordByPathAsync(dataPath);

                Assert.IsTrue(getRepo.PK != null);
            }

            mdm.Dispose();
        }
        public async Task CannotCreateStreamWithTheSameNameAsRepoAsync()
        {
            var path = TestUtils.GetPath(clear: true);
            var mdm  = new MetadataManager(path);

            var record = await mdm.CreateRepoAsync(new DataPath("~/test/"));

            Assert.IsTrue(record.PK != null);

            var repo1 = await mdm.GetMetadataRecordByPathAsync(new DataPath("~/test/"));

            Assert.AreEqual(1, repo1.ParentId);

            record = await mdm.CreateStreamAsync(new DataPath("~/test"), new Metadata(""), default);

            Assert.IsFalse(record.PK != null);
        }