public void ODataRepository_GetUrlMetadata()
        {
            var testCfg = TestCfg.Get();

            Assert.False(string.IsNullOrEmpty(testCfg.ProjectServer?.Url));
            var testCfg            = OfaSchlupfer.TestCfg.Get();
            var repCSProjectServer = testCfg.ProjectServer.CreateWithSuffix("/_api/ProjectData/[en-us]");

            repCSProjectServer.AuthenticationMode = "SPOIDCRL";

            var sut = new ODataRepositoryImplementation(null);

            sut.SetConnectionString(testCfg.ProjectServer, "/_api/ProjectData/[en-us]");
            Assert.NotEqual("", sut.GetUrlMetadata());
            Assert.StartsWith("http", sut.GetUrlMetadata());
            Assert.EndsWith("$metadata", sut.GetUrlMetadata());
        }
        public void ODataRepository_GetMetadata()
        {
            var testCfg = TestCfg.Get();

            Assert.False(string.IsNullOrEmpty(testCfg.SolutionFolder));
            var contentMetaDataXml = ReadMetaDataXml(testCfg);

            var modelRepository = new ModelRepository();
            var sut             = new ODataRepositoryImplementation(null);

            modelRepository.ReferenceRepositoryModel = sut;
            sut.SetConnectionString(testCfg.ProjectServer, "/_api/ProjectData/[en-us]");
            sut.BuildSchema(contentMetaDataXml);
            try {
                string outputPath = System.IO.Path.Combine(testCfg.SolutionFolder, @"test\temp\ODataRepository_GetMetadata.json");
                System.IO.File.WriteAllText(outputPath, Newtonsoft.Json.JsonConvert.SerializeObject(
                                                sut.ModelSchema,
                                                Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings {
                    PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects
                }));
            } catch {
                throw;
            }
        }