public void AddTableTest() { const string testPath = "StorageTestAddTableTest"; if (Directory.Exists(testPath)) { Directory.Delete(testPath, true); } _dataStorage = new DataStorageInFiles(testPath, _blockSize); var tableName = new Id(new List <string>() { "Table1" }); var columns = new List <Column> { { new Column(new Id(new List <string>() { "Name" }), DataType.CHAR, 25, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Soname" }), DataType.CHAR, 30, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Age" }), DataType.INT, 0, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Rating" }), DataType.DOUBLE, 0, new List <string>(), NullSpecOpt.Null) }, }; var table = new Table(new TableMetaInf(tableName) { ColumnPool = columns }); var result = _dataStorage.AddTable(table); Assert.AreEqual(result.State, ExecutionState.performed); var resultCont = _dataStorage.ContainsTable(table.TableMetaInf.Name); Assert.AreEqual(resultCont.State, ExecutionState.performed); Assert.AreEqual(resultCont.Result, true); resultCont = _dataStorage.ContainsTable(new Id(new List <string>() { "radomTable" })); Assert.AreEqual(resultCont.State, ExecutionState.failed); Assert.AreEqual(resultCont.Result, false); var resultTable = _dataStorage.LoadTable(table.TableMetaInf.Name); Assert.AreEqual(resultTable.State, ExecutionState.performed); Assert.AreEqual(resultTable.Result.TableMetaInf.Name.ToString(), table.TableMetaInf.Name.ToString()); for (var i = 0; i < resultTable.Result.TableMetaInf.ColumnPool.Count; ++i) { Assert.AreEqual(columns[i].Name.ToString(), resultTable.Result.TableMetaInf.ColumnPool[i].Name.ToString()); Assert.AreEqual(columns[i].DataType, resultTable.Result.TableMetaInf.ColumnPool[i].DataType); Assert.AreEqual(columns[i].DataParam, resultTable.Result.TableMetaInf.ColumnPool[i].DataParam); } }
public void InsertRowsTest() { const string testPath = "StorageTestInsertRowsTest"; if (Directory.Exists(testPath)) { Directory.Delete(testPath, true); } _dataStorage = new DataStorageInFiles(testPath, 805); var tableName = new Id(new List <string>() { "Table1" }); var columns = new List <Column> { { new Column(new Id(new List <string>() { "Name" }), DataType.CHAR, 25, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Soname" }), DataType.CHAR, 30, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Age" }), DataType.INT, 0, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Rating" }), DataType.DOUBLE, 0, new List <string>(), NullSpecOpt.Null) }, }; var table = new Table(new TableMetaInf(tableName) { ColumnPool = columns }); var result = _dataStorage.AddTable(table); Assert.AreEqual(result.State, ExecutionState.performed); var count = 0; var row2 = table.CreateRowFormStr(new string[] { "Ivan", "IvanovIvanovIvanov", "23", "44.345" }); var rowNull = new Row(new Field[table.TableMetaInf.ColumnPool.Count]); for (var i = 0; i < 10; ++i) { Assert.AreEqual(row2.State, ExecutionState.performed); _dataStorage.InsertRow(tableName, row2.Result); count++; } var resultTable = _dataStorage.LoadTable(table.TableMetaInf.Name); Assert.AreEqual(resultTable.State, ExecutionState.performed); count = 0; foreach (var row in resultTable.Result.TableData) { CheckRow(row, row2.Result); count++; } Assert.AreEqual(count, 10); }
public void DeleteRowsTest() { const string testPath = "StorageTestDeleteRowsTest"; if (Directory.Exists(testPath)) { Directory.Delete(testPath, true); } _dataStorage = new DataStorageInFiles(testPath, 805); var tableName = new Id(new List <string>() { "Table1" }); var columns = new List <Column> { { new Column(new Id(new List <string>() { "Name" }), DataType.CHAR, 25, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Soname" }), DataType.CHAR, 30, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Age" }), DataType.INT, 0, new List <string>(), NullSpecOpt.Null) }, { new Column(new Id(new List <string>() { "Rating" }), DataType.DOUBLE, 0, new List <string>(), NullSpecOpt.Null) }, }; var table = new Table(new TableMetaInf(tableName) { ColumnPool = columns }); var result = _dataStorage.AddTable(table); Assert.AreEqual(result.State, ExecutionState.performed); var row1 = table.CreateDefaultRow(); Assert.AreEqual(row1.State, ExecutionState.performed); //for (int i = 0; i < 10; ++i) //{ // Assert.AreEqual(row1.State, ExecutionState.performed); // dataStorage.InsertRow(tableName, row1.Result); //} var row2 = table.CreateRowFormStr(new string[] { "Ivan", "IvanovIvanovIvanov", "23", "44.345" }); Assert.AreEqual(row2.State, ExecutionState.performed); for (var i = 0; i < 10; ++i) { Assert.AreEqual(_dataStorage.InsertRow(tableName, row2.Result).State, ExecutionState.performed); } _dataStorage.InsertRow(tableName, row1.Result); _dataStorage.RemoveAllRow(table.TableMetaInf.Name, (Row f) => ((FieldChar)(f.Fields[0])).Value == ((FieldChar)(row2.Result.Fields[0])).Value); _dataStorage.InsertRow(tableName, row1.Result); var resultTable = _dataStorage.LoadTable(table.TableMetaInf.Name); Assert.AreEqual(resultTable.State, ExecutionState.performed); var count = 0; foreach (var row in resultTable.Result.TableData) { CheckRow(row, row1.Result); count++; } Assert.AreEqual(count, 2); for (var i = 0; i < 15; ++i) { Assert.AreEqual(_dataStorage.InsertRow(tableName, row1.Result).State, ExecutionState.performed); } resultTable = _dataStorage.LoadTable(table.TableMetaInf.Name); Assert.AreEqual(resultTable.State, ExecutionState.performed); count = 0; foreach (var row in resultTable.Result.TableData) { CheckRow(row, row1.Result); count++; } Assert.AreEqual(count, 17); _dataStorage.RemoveAllRow(table.TableMetaInf.Name, (Row f) => ((FieldChar)(f.Fields[0])).Value == ((FieldChar)(row1.Result.Fields[0])).Value); count = 0; resultTable = _dataStorage.LoadTable(table.TableMetaInf.Name); Assert.AreEqual(resultTable.State, ExecutionState.performed); count = 0; foreach (var row in resultTable.Result.TableData) { CheckRow(row, row1.Result); count++; } Assert.AreEqual(count, 0); }