Example #1
0
        public void Should_Write_Whole_Table()
        {
            var header   = new string[] { "key", "val" };
            var row      = new string[] { "unit_type", "miles" };
            var expected = new string[]
            {
                "[DATA]",
                "| key | val |",
                "|-----|-----|",
                "| unit_type | miles |",
                "| unit_type | miles |",
                string.Empty
            };
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                subject.WriteSection("DATA");
                Assert.AreEqual(WriterState.Section, subject.State);
                subject.WriteTableHeader(header);
                subject.WriteTableRow(row);
                subject.WriteTableRow(row);
                Assert.AreEqual(WriterState.Section | WriterState.TableRow, subject.State);
            }
            CollectionAssert.AreEquivalent(expected, sb.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None));
        }
Example #2
0
            static void action()
            {
                var sb = new StringBuilder();

                using var subject = new IonWriter(new StringWriter(sb));
                subject.WriteSection(null !);
            }
Example #3
0
        public void Should_Write_Table_Cell_With_Custom_Value()
        {
            var expected = new string[]
            {
                "| unit_type | miles |",
                "| unit_type | miles |",
                string.Empty,
                "| my custom table |",
                string.Empty,
            };
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                subject.WriteTableCell((tw) => tw.Write("unit_type"));
                subject.WriteTableCell((tw) => tw.Write("miles"), true);
                subject.WriteTableCell("unit_type");
                subject.WriteTableCell("miles", true);
                Assert.AreEqual(WriterState.TableRow, subject.State);
                subject.WriteEmptyLine();
                Assert.AreEqual(WriterState.None, subject.State);
                subject.WriteTableCell((tw) => tw.Write("my custom table"), true);
                Assert.AreEqual(WriterState.TableRow, subject.State);
            }
            CollectionAssert.AreEquivalent(expected, sb.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None));
        }
Example #4
0
        public void IIonWriter_WriteTableRow_Throws_InvalidTableCellDataException()
        {
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                Assert.Throws <InvalidTableCellDataException>(() => subject.WriteTableRow(new[] { "\n" }));
                Assert.Throws <InvalidTableCellDataException>(() => subject.WriteTableRow(new[] { "|" }));
            }
        }
Example #5
0
        public void Should_Write_Section()
        {
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                subject.WriteSection("META");
                Assert.AreEqual(WriterState.Section, subject.State);
            }
            Assert.AreEqual(string.Format("[META]{0}", Environment.NewLine), sb.ToString());
        }
Example #6
0
        public void Should_Write_Integer_Property()
        {
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                subject.WriteSection("META");
                Assert.AreEqual(WriterState.Section, subject.State);
                subject.WriteProperty("test", 1000);
                Assert.AreEqual(WriterState.Section | WriterState.Property, subject.State);
            }
            Assert.AreEqual(string.Format("[META]{0}test=1000{0}", Environment.NewLine), sb.ToString());
        }
Example #7
0
        public void IIonWriter_WriteTableCell_Throws_InvalidTableCellDataException()
        {
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                Assert.Throws <InvalidTableCellDataException>(() => subject.WriteTableCell("\n"));
                Assert.Throws <InvalidTableCellDataException>(() => subject.WriteTableCell("|"));

                Assert.Throws <InvalidTableCellDataException>(() => subject.WriteTableCell("\n".ToCharArray(), 0, 1));
                Assert.Throws <InvalidTableCellDataException>(() => subject.WriteTableCell("|".ToCharArray(), 0, 1));
            }
        }
Example #8
0
        public void Should_Write_Escaped_Newlines_String_Property()
        {
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb), new WriterOptions {
                EscapeQuotes = true, EscapeNewLineChars = true
            }))
            {
                subject.WriteSection("META");
                Assert.AreEqual(WriterState.Section, subject.State);
                subject.WriteProperty("test", "value");
                Assert.AreEqual(WriterState.Section | WriterState.Property, subject.State);
            }
            Assert.AreEqual(string.Format("[META]{0}test=\\\"value\\\"{0}", Consts.IonSpecialChars.NewLineEscaped), sb.ToString());
        }
Example #9
0
        public void Should_Write_Multiple_Properties()
        {
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                subject.WriteSection("META");
                Assert.AreEqual(WriterState.Section, subject.State);
                subject.WriteProperty("test", 24.3f);
                subject.WriteProperty("test1", "test1val");
                subject.WriteProperty("test2", true);
                Assert.AreEqual(WriterState.Section | WriterState.Property, subject.State);
            }
            Assert.AreEqual(string.Format("[META]{0}test=24.3{0}test1=\"test1val\"{0}test2=true{0}", Environment.NewLine), sb.ToString());
        }
Example #10
0
        public void Should_Write_Table_Outside_Section()
        {
            var row      = new string[] { "unit_type", "miles" };
            var expected = new string[]
            {
                "| unit_type | miles |",
                "| unit_type | miles |",
                string.Empty
            };
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                subject.WriteTableRow(row);
                subject.WriteTableRow(row);
                Assert.AreEqual(WriterState.TableRow, subject.State);
            }
            CollectionAssert.AreEquivalent(expected, sb.ToString().Split(new string[] { Environment.NewLine }, StringSplitOptions.None));
        }
Example #11
0
        public void Should_Write_Custom_Property()
        {
            var sb = new StringBuilder();

            using (var subject = new IonWriter(new StringWriter(sb)))
            {
                subject.WriteSection("META");
                Assert.AreEqual(WriterState.Section, subject.State);
                subject.WriteProperty("test", (tw) =>
                {
                    tw.Write('[');
                    tw.Write(23);
                    tw.Write(',');
                    tw.Write(23);
                    tw.Write(',');
                    tw.Write(23);
                    tw.Write(',');
                    tw.Write(23);
                    tw.Write(']');
                });
                Assert.AreEqual(WriterState.Section | WriterState.Property, subject.State);
            }
            Assert.AreEqual(string.Format("[META]{0}test=[23,23,23,23]{0}", Environment.NewLine), sb.ToString());
        }