public async Task TestCreateReadProjectionCreatesTable() { await _readProjectionWriter.CreateReadProjection(_datasetId); A.CallTo(() => _databaseEngine.CreateTable(A <string> .That.IsEqualTo(_datasetId.ToString()), A <IEnumerable <Column> > .That.Matches(c => CheckTableCreation(c)))) .MustHaveHappenedOnceExactly(); }
public async Task CreateReadProjection(Guid datasetId) { var tableName = GetTableName(datasetId); await _databaseEngine.CreateTable(tableName, GetColumns()); await InsertExistingFeatures(datasetId, tableName); _messageBus.Subscribe(datasetId, @event => { Update(datasetId, tableName, @event); }); }
static void Main(string[] args) { IEngineCreator Creator = new EngineCreator(); Console.WriteLine("Press 1 for MySql\nPress 2 for MsSql\nPress 3 for Oracle"); int choice = Convert.ToInt32(Console.ReadLine()); switch (choice) { case 1: MySQLDataAccessLayer MySqlLayer = DataAccessLayer <MySQLDataAccessLayer> .GetInstance(); Creator = MySqlLayer.GetCreator(); break; case 2: MSSQLDataAccessLayer MsSqlLayer = DataAccessLayer <MSSQLDataAccessLayer> .GetInstance(); Creator = MsSqlLayer.GetCreator(); break; case 3: OracleDataAccessLayer OracleLayer = DataAccessLayer <OracleDataAccessLayer> .GetInstance(); Creator = OracleLayer.GetCreator(); break; default: Console.WriteLine("Invalid Input"); break; } IDatabaseEngine DB = Creator.CreateDatabaseEngine(); DB.CreateAdapter(); DB.CreateCommand(); DB.CreateTable(); DB.CreateView(); Console.ReadLine(); }