blob: 9ba29b80ae965d4566a311338b189842134fea58 [file] [log] [blame]
package org.eclipse.basyx.regression.registry;
import org.eclipse.basyx.aas.metamodel.map.descriptor.AASDescriptor;
import org.eclipse.basyx.aas.registration.api.IAASRegistryService;
import org.eclipse.basyx.components.configuration.BaSyxSQLConfiguration;
import org.eclipse.basyx.components.registry.sql.SQLRegistry;
import org.eclipse.basyx.testsuite.regression.aas.registration.TestRegistryProviderSuite;
import org.eclipse.basyx.tools.sqlproxy.SQLRootElement;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Test class for a local registry provider based on SQL tables
*
* @author espen
*
*/
public class TestSQLRegistryProvider extends TestRegistryProviderSuite {
@BeforeClass
public static void setUpClass() {
SQLRootElement root = getSQLRootElement();
root.drop();
}
@AfterClass
public static void tearDownClass() {
SQLRootElement root = getSQLRootElement();
root.drop();
}
protected static SQLRootElement getSQLRootElement() {
// Load config
BaSyxSQLConfiguration config = new BaSyxSQLConfiguration();
config.loadFromResource("sql.properties");
// Create SQL driver instance
String path = config.getPath();
String user = config.getUser();
String pass = config.getPass();
String qryPfx = config.getPrefix();
String qDrvCls = config.getDriver();
return new SQLRootElement(user, pass, path, qDrvCls, qryPfx, SQLRegistry.TABLE_ID);
}
@Override
protected IAASRegistryService getRegistryService() {
BaSyxSQLConfiguration sqlConfig = new BaSyxSQLConfiguration();
sqlConfig.loadFromResource("sql.properties");
return new SQLRegistry(sqlConfig);
}
/**
* Tests, if the data has been persisted by creating a new registry with the same settings
*/
@Test
public void testPersistency() {
// Create new SQLRegistry with same configuration
BaSyxSQLConfiguration sqlConfig = new BaSyxSQLConfiguration();
sqlConfig.loadFromResource("sql.properties");
IAASRegistryService registry = new SQLRegistry(sqlConfig);
// Try to "overwrite" data
AASDescriptor aasDesc2 = new AASDescriptor(aasIdShort2, aasId2, asset2, aasEndpoint2);
proxy.register(aasDesc2);
// Retrieve and check the first AAS
AASDescriptor descriptor = registry.lookupAAS(aasId1);
super.validateDescriptor1(descriptor);
// Retrieve and check the second AAS
AASDescriptor descriptor2 = registry.lookupAAS(aasId2);
super.validateDescriptor2(descriptor2);
}
}