public async Task CreateTsvValueNotepadTests()
        {
            var record = new TestValueRecord
            {
                ByteValue   = 1,
                SbyteValue  = -1,
                UShortValue = 2,
                ShortValue  = -2,
                UIntValue   = 3,
                IntValue    = -3,
                ULongValue  = 4,
                LongValue   = -4,
                StringValue = "value",
                DoubleValue = 1.1,
                NumberValue = 1.2,
                NumberArray = new Number[] { 1.3, 1.4 }
            };

            string filePath;
            string result;

            using (var writer = new SimpleLoggerMemoryWriter())
            {
                var logger = writer.WithWriterFactory(RecordWriterBuilderForTests.Default);
                await using (var serializer = logger.CreateTsvValueNotepad <TestValueRecord>("test"))
                {
                    serializer.Write(in record);
                    filePath = serializer.Destination.FullName;
                }

                writer.Flush(out result);
            }

            string[] lines = await File.ReadAllLinesAsync(filePath);

            lines.Length.AssertIsEqualTo(2);
            lines[0].Split('\t').AssertSequenceEqualsTo(new[]
            {
                "ByteValue", "SbyteValue", "UShortValue", "ShortValue", "UIntValue", "IntValue", "ULongValue", "LongValue",
                "StringValue", "DoubleValue", "NumberValue", "NumberArray_0", "NumberArray_1"
            });
            lines[1].AssertIsEqualTo("1\t-1\t2\t-2\t3\t-3\t4\t-4\tvalue\t1.1\t1.2\t1.3\t1.4");

            string[] resultLines = result.Split(Environment.NewLine);
            resultLines.Length.AssertIsEqualTo(2);
            resultLines[0].AssertIsEqualTo("Notepad test: " + filePath);
        }
Esempio n. 2
0
        public void DefaultSerialization_NullReadOnlyArray()
        {
            var record = new TestValueRecord
            {
                ByteValue   = 1,
                SbyteValue  = -1,
                UShortValue = 2,
                ShortValue  = -2,
                UIntValue   = 3,
                IntValue    = -3,
                ULongValue  = 4,
                LongValue   = -4,
                StringValue = "value",
                DoubleValue = 1.1,
                NumberValue = 1.2
            };

            TestValueRecord?record2 = null;
            TestValueRecord?record3 = record;

            string result;

            using (var writer = new SimpleLoggerMemoryWriter())
            {
                var serializer = RecordWriterBuilderForTests.Default.CreateTsvValueRecordWriter <TestValueRecord>(writer);

                serializer.Write(in record);
                serializer.Write(in record2);
                serializer.Write(in record3);
                writer.Flush(out result);
            }

            string[] lines = result.Split(Environment.NewLine);
            lines.Length.AssertIsEqualTo(5);
            lines[0].Split('\t').AssertSequenceEqualsTo(new[]
            {
                "ByteValue", "SbyteValue", "UShortValue", "ShortValue", "UIntValue", "IntValue", "ULongValue", "LongValue",
                "StringValue", "DoubleValue", "NumberValue"
            });
            lines[1].AssertIsEqualTo("1\t-1\t2\t-2\t3\t-3\t4\t-4\tvalue\t1.1\t1.2");
            lines[2].AssertIsEqualTo("\t\t\t\t\t\t\t\t\t\t");
            lines[3].AssertIsEqualTo("1\t-1\t2\t-2\t3\t-3\t4\t-4\tvalue\t1.1\t1.2");
            lines[4].AssertIsEmpty();
        }