private void WriteRow(HaystackGrid grid, HaystackRow row)
        {
            var first = true;

            foreach (var column in grid.Columns)
            {
                var value = row.ContainsKey(column.Name) ? row[column.Name] : null;
                if (first)
                {
                    first = false;
                }
                else
                {
                    _targetWriter.Write(',');
                }
                if (value == null)
                {
                    _targetWriter.Write('N');
                }
                else
                {
                    WriteValue(value);
                }
            }
        }
Ejemplo n.º 2
0
        void VerifyRowIterator(HaystackRow it, int iIndex, string name, HaystackValue val)
        {
            Assert.IsTrue(it.Count > iIndex);
            var strKeyValue = it.Keys.Skip(iIndex).First();

            Assert.AreEqual(name, strKeyValue);
            Assert.IsTrue(it[strKeyValue].Equals(val));
        }
Ejemplo n.º 3
0
        public void TestSimple()
        {
            var grid = new HaystackGrid();

            grid.AddColumn("id");
            grid.AddColumn("dis");
            grid.AddColumn("area");
            grid.AddRow(new HaystackReference("a"), new HaystackString("Alpha"), new HaystackNumber(1200));
            grid.AddRow(new HaystackReference("b"), null, new HaystackNumber(1400));

            //.Meta
            Assert.AreEqual(grid.Meta.Count, 0);

            // cols
            //HCol c;
            Assert.AreEqual(grid.ColumnCount, 3);
            VerifyCol(grid, 0, "id");
            VerifyCol(grid, 1, "dis");
            VerifyCol(grid, 2, "area");

            // rows
            Assert.AreEqual(grid.RowCount, 2);
            Assert.IsFalse(grid.IsEmpty());
            var row = grid.Row(0);

            Assert.IsTrue(row.Get("id").Equals(new HaystackReference("a")));
            Assert.IsTrue(row.Get("dis").Equals(new HaystackString("Alpha")));
            Assert.IsTrue(row.Get("area").Equals(new HaystackNumber(1200)));
            row = grid.Row(1);
            Assert.IsTrue(row.Get("id").Equals(new HaystackReference("b")));
            Assert.IsFalse(row.ContainsKey("dis"));
            Assert.IsTrue(row.Get("area").Equals(new HaystackNumber(1400)));
            Assert.ThrowsException <HaystackUnknownNameException>(() => row["dis"]);
            Assert.IsFalse(row.ContainsKey("fooBar"));
            Assert.ThrowsException <HaystackUnknownNameException>(() => row["fooBar"]);

            // HaystackRow no-nulls
            HaystackRow it = grid.Row(0);

            Assert.IsFalse(it.Count > 3);
            VerifyRowIterator(it, 0, "id", new HaystackReference("a"));
            VerifyRowIterator(it, 1, "dis", new HaystackString("Alpha"));
            VerifyRowIterator(it, 2, "area", new HaystackNumber(1200));


            // HaystackRow with nulls
            it = grid.Row(1);
            Assert.IsFalse(it.Count > 3);
            VerifyRowIterator(it, 0, "id", new HaystackReference("b"));
            VerifyRowIterator(it, 2, "area", new HaystackNumber(1400));

            // iterating
            VerifyGridIterator(grid);
        }