package com.breeze.test;
import java.util.HashMap;
import java.util.List;
import org.hibernate.SessionFactory;
import com.breeze.hib.HibernateMetadata;
import com.breeze.metadata.Metadata;
import com.breeze.metadata.RawMetadata;
import com.breeze.util.JsonGson;
import com.breeze.test.Serializer;
import junit.framework.TestCase;
@SuppressWarnings("unused")
public class MetadataBuilderTest extends TestCase {
public static final String NORTHWINDIB_METADATA_SER = "src/test/resources/northwindib_metadata.ser";
public static final String NORTHWINDIB_METADATA_JSON = "src/test/resources/northwindib_metadata.json";
protected void setUp() throws Exception {
super.setUp();
}
public void exportMetadata(RawMetadata metadata)
{
Serializer.write(metadata, NORTHWINDIB_METADATA_SER);
}
public RawMetadata importMetadata()
{
Object obj = Serializer.read(NORTHWINDIB_METADATA_SER);
return (RawMetadata) obj;
}
public void exportMetadataString(String json)
{
Serializer.writeString(json, NORTHWINDIB_METADATA_JSON);
}
public String importMetadataString() {
return Serializer.readString(NORTHWINDIB_METADATA_JSON);
}
public String toJson(RawMetadata metadata) {
String json = JsonGson.toJson(metadata);
return json;
}
/* only run this when you want to change the stored metadata
public void testExportMetadata() {
SessionFactory sf = StaticConfigurator.getSessionFactory();
MetadataBuilder mb = new MetadataBuilder(sf);
Metadata metadata = mb.buildMetadata();
exportMetadata(metadata);
Metadata metadata2 = importMetadata();
assertNotNull(metadata2);
}
*/
/* only run this when you want to change the stored metadata
public void testExportMetadataJson() {
SessionFactory sf = StaticConfigurator.getSessionFactory();
MetadataBuilder mb = new MetadataBuilder(sf);
Metadata metadata = mb.buildMetadata();
String json = toJson(metadata);
exportMetadataString(json);
String json2 = importMetadataString();
assertNotNull(json2);
assertEquals(json, json2);
}
*/
/**
* Tests metadata from the NorthwindIB configuration
*/
public void testBuildMetadata() {
SessionFactory sf = StaticConfigurator.getSessionFactory();
Metadata metadata = new HibernateMetadata(sf);
metadata.build();
RawMetadata rawMetadata = metadata.getRawMetadata();
assertNotNull(metadata);
assertNotNull(rawMetadata.get("localQueryComparisonOptions"));
assertTrue(rawMetadata.get("localQueryComparisonOptions") instanceof String);
assertTrue(rawMetadata.get("structuralTypes") instanceof List);
assertTrue(rawMetadata.get("resourceEntityTypeMap") instanceof HashMap);
assertTrue(rawMetadata.foreignKeyMap instanceof HashMap);
String jsonMetadata = JsonGson.toJson(rawMetadata);
// compare to known good metadata
// String json = toJson(metadata);
//
// String storedMetadata = importMetadataString();
// assertNotNull(storedMetadata);
//
// assertEquals(storedMetadata, json);
}
}