public class org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation extends java.lang.Object
{
public org.junit.rules.TemporaryFolder tempFolder;
private org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector;
private org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider;
private org.h.tools.Server server;
public void <init>()
{
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation v;
org.junit.rules.TemporaryFolder v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.junit.rules.TemporaryFolder;
specialinvoke v.<org.junit.rules.TemporaryFolder: void <init>()>();
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.junit.rules.TemporaryFolder tempFolder> = v;
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider> = null;
return;
}
public void setup() throws java.lang.Exception
{
org.h.tools.Server v;
org.finos.legend.engine.plan.execution.stores.relational.config.TemporaryTestDbConfiguration v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation v;
java.lang.Integer v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider v, v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v;
java.util.List v;
int v, v;
java.util.Optional v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation;
v = staticinvoke <org.finos.legend.engine.shared.core.port.DynamicPortGenerator: int generatePort()>();
v = staticinvoke <org.finos.legend.engine.plan.execution.stores.relational.AlloyH2Server: org.h.tools.Server startServer(int)>(v);
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.h.tools.Server server> = v;
v = new org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider;
specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider: void <init>()>();
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider> = v;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider>;
virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: void assertStaticH2FlowIsAvailable(org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider)>(v);
v = new org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector;
v = new org.finos.legend.engine.plan.execution.stores.relational.config.TemporaryTestDbConfiguration;
v = (int) -1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.config.TemporaryTestDbConfiguration: void <init>(java.lang.Integer)>(v);
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider>;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: void <init>(org.finos.legend.engine.plan.execution.stores.relational.config.TemporaryTestDbConfiguration,java.util.List,java.util.Optional)>(v, v, v);
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector> = v;
return;
}
public void shutdown()
{
org.h.tools.Server v, v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.h.tools.Server server>;
if v == null goto label;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.h.tools.Server server>;
virtualinvoke v.<org.h.tools.Server: void shutdown()>();
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.h.tools.Server server>;
virtualinvoke v.<org.h.tools.Server: void stop()>();
label:
return;
}
public void assertStaticH2FlowIsAvailable(org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider)
{
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType v, v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.TestDatabaseAuthenticationStrategy v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection v;
java.util.Optional v;
boolean v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation;
v := @parameter: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider;
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification: void <init>()>();
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.TestDatabaseAuthenticationStrategy;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.TestDatabaseAuthenticationStrategy: void <init>()>();
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection;
v = <org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType H2>;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: void <init>(org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.DatasourceSpecification,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.AuthenticationStrategy,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType)>(v, v, v);
v = <org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType H2>;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType type> = v;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider: java.util.Optional lookupFlow(org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection)>(v);
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
staticinvoke <org.junit.Assert: void assertTrue(java.lang.String,boolean)>("static h flow does not exist ", v);
return;
}
public void credentialCreatedOnFirstConnectionCreation() throws java.lang.Exception
{
org.finos.legend.engine.shared.core.identity.Identity v;
org.h.tools.Server v;
java.sql.Connection v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider v;
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v;
java.util.List v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection v;
int v, v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation;
v = new org.finos.legend.engine.shared.core.identity.Identity;
specialinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: void <init>(java.lang.String)>("testuser1");
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.h.tools.Server server>;
v = virtualinvoke v.<org.h.tools.Server: int getPort()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection buildStaticDatabaseSpec(java.lang.String,int,java.lang.String)>("127.0.0.1", v, "db1");
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.sql.Connection getDatabaseConnection(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseConnection)>(v, v);
staticinvoke <org.junit.Assert: void assertNotNull(java.lang.Object)>(v);
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow testFlow>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow: java.util.List invocations>;
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(java.lang.String,long,long)>("mismatch in number of credentials creation requests", 2L, v);
return;
}
public void credentialNotCreatedWhenConnectionIsReused() throws java.lang.Exception
{
org.finos.legend.engine.shared.core.identity.Identity v;
org.h.tools.Server v;
java.sql.Connection v, v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation v;
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v, v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow v, v, v;
int v, v, v, v;
org.h.jdbc.JdbcConnection v, v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider v, v, v;
java.util.List v, v, v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation;
v = new org.finos.legend.engine.shared.core.identity.Identity;
specialinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: void <init>(java.lang.String)>("testuser1");
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.h.tools.Server server>;
v = virtualinvoke v.<org.h.tools.Server: int getPort()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection buildStaticDatabaseSpec(java.lang.String,int,java.lang.String)>("127.0.0.1", v, "db1");
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.sql.Connection getDatabaseConnection(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseConnection)>(v, v);
staticinvoke <org.junit.Assert: void assertNotNull(java.lang.Object)>(v);
v = staticinvoke <org.finos.legend.engine.plan.execution.stores.relational.connection.test.utils.H2TestUtils: org.h.jdbc.JdbcConnection unwrapHikariProxyConnection(java.sql.Connection)>(v);
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow testFlow>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow: java.util.List invocations>;
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(java.lang.String,long,long)>("mismatch in number of credentials creation requests", 2L, v);
interfaceinvoke v.<java.sql.Connection: void close()>();
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.sql.Connection getDatabaseConnection(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseConnection)>(v, v);
v = staticinvoke <org.finos.legend.engine.plan.execution.stores.relational.connection.test.utils.H2TestUtils: org.h.jdbc.JdbcConnection unwrapHikariProxyConnection(java.sql.Connection)>(v);
staticinvoke <org.junit.Assert: void assertSame(java.lang.String,java.lang.Object,java.lang.Object)>("found distinct connections when same connection was expected", v, v);
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow testFlow>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow: java.util.List invocations>;
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(java.lang.String,long,long)>("mismatch in number of credentials creation requests", 2L, v);
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManagerSelector>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.sql.Connection getDatabaseConnection(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseConnection)>(v, v);
v = staticinvoke <org.finos.legend.engine.plan.execution.stores.relational.connection.test.utils.H2TestUtils: org.h.jdbc.JdbcConnection unwrapHikariProxyConnection(java.sql.Connection)>(v);
staticinvoke <org.junit.Assert: void assertNotSame(java.lang.String,java.lang.Object,java.lang.Object)>("found same connection when distinct connections was expected", v, v);
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider testFlowProvider>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow testFlow>;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestDatabaseAuthenticationFlowProvider$RecordingH2StaticWithTestUserPasswordFlow: java.util.List invocations>;
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.Assert: void assertEquals(java.lang.String,long,long)>("mismatch in number of credentials creation requests", 3L, v);
return;
}
public org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection buildStaticDatabaseSpec(java.lang.String, int, java.lang.String)
{
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType v, v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.TestDatabaseAuthenticationStrategy v;
org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection v;
int v;
java.lang.String v, v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.test.TestCredentialCreation;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: java.lang.String;
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification: void <init>()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification: java.lang.String host> = v;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification: int port> = v;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification: java.lang.String databaseName> = v;
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.TestDatabaseAuthenticationStrategy;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.TestDatabaseAuthenticationStrategy: void <init>()>();
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection;
v = <org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType H2>;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: void <init>(org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.DatasourceSpecification,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.AuthenticationStrategy,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType)>(v, v, v);
v = <org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType H2>;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType type> = v;
return v;
}
}