Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }