1*090ab8e1SEd Tanous #include "file_test_utilities.hpp" 2*090ab8e1SEd Tanous #include "metadata.hpp" 3*090ab8e1SEd Tanous 4*090ab8e1SEd Tanous #include <string> 5*090ab8e1SEd Tanous 6*090ab8e1SEd Tanous #include <gmock/gmock.h> 7*090ab8e1SEd Tanous #include <gtest/gtest.h> 8*090ab8e1SEd Tanous 9*090ab8e1SEd Tanous namespace redfish 10*090ab8e1SEd Tanous { 11*090ab8e1SEd Tanous namespace 12*090ab8e1SEd Tanous { 13*090ab8e1SEd Tanous 14*090ab8e1SEd Tanous /* 15*090ab8e1SEd Tanous Example from Redfish and OData whitepaper. 16*090ab8e1SEd Tanous 17*090ab8e1SEd Tanous https://www.dmtf.org/sites/default/files/standards/documents/DSP2052_1.0.0.pdf 18*090ab8e1SEd Tanous */ 19*090ab8e1SEd Tanous constexpr std::string_view content = 20*090ab8e1SEd Tanous "<edmx:Edmx xmlns:edms=\"http://docs.oasis-open.org/odata/ns/edmx\" Version=\"4.0\">\n" 21*090ab8e1SEd Tanous " <edmx:Reference Uri=\"http://contoso.org/schemas/ExternalSchema.xml\">\n" 22*090ab8e1SEd Tanous " <edmx:Include Namespace=\"ExternalNamespace\"/>\n" 23*090ab8e1SEd Tanous " <edmx:Include Namespace=\"Other.Namespace\"/>\n" 24*090ab8e1SEd Tanous " </edmx:Reference>\n" 25*090ab8e1SEd Tanous " <edmx:DataServices>\n" 26*090ab8e1SEd Tanous " <Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\" Namespace=\"MyNewNamespace\">\n" 27*090ab8e1SEd Tanous " <ComplexType Name=\"MyDataType\">\n" 28*090ab8e1SEd Tanous " <Property Name=\"MyProperty\" Type=\"ExternalNamespace.ReferencedDataType\"/>\n" 29*090ab8e1SEd Tanous " <Property Name=\"MyProperty2\" Type=\"Other.Namespace.OtherDataType\"/>\n" 30*090ab8e1SEd Tanous " <Property Name=\"MyProperty3\" Type=\"Edm.Int64\"/>\n" 31*090ab8e1SEd Tanous " </ComplexType>\n" 32*090ab8e1SEd Tanous " </Schema>\n" 33*090ab8e1SEd Tanous " </edmx:DataServices>\n" 34*090ab8e1SEd Tanous "</edmx:Edmx>\n"; 35*090ab8e1SEd Tanous 36*090ab8e1SEd Tanous TEST(MetadataGet, GetOneFile) 37*090ab8e1SEd Tanous { 38*090ab8e1SEd Tanous TemporaryFileHandle file(content); 39*090ab8e1SEd Tanous 40*090ab8e1SEd Tanous std::filesystem::path path{file.stringPath}; 41*090ab8e1SEd Tanous EXPECT_EQ( 42*090ab8e1SEd Tanous getMetadataPieceForFile(path), 43*090ab8e1SEd Tanous std::format(" <edmx:Reference Uri=\"/redfish/v1/schema/{}\">\n" 44*090ab8e1SEd Tanous " <edmx:Include Namespace=\"MyNewNamespace\"/>\n" 45*090ab8e1SEd Tanous " </edmx:Reference>\n", 46*090ab8e1SEd Tanous path.filename().string())); 47*090ab8e1SEd Tanous 48*090ab8e1SEd Tanous EXPECT_EQ(getMetadataPieceForFile("DoesNotExist_v1.xml"), ""); 49*090ab8e1SEd Tanous } 50*090ab8e1SEd Tanous 51*090ab8e1SEd Tanous } // namespace 52*090ab8e1SEd Tanous } // namespace redfish 53