Beispiel #1
0
        public void WriteDynamicProxyObjectTest()
        {
            var list           = new List <TestClass>();
            var proxyGenerator = new Castle.DynamicProxy.ProxyGenerator();

            for (var i = 0; i < 1; i++)
            {
                var proxy = proxyGenerator.CreateClassProxy <TestClass>();
                proxy.Id   = i + 1;
                proxy.Name = "name" + proxy.Id;
                list.Add(proxy);
            }

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
                        {
                            csv.Context.RegisterClassMap <TestClassMap>();
                            csv.WriteRecords(list);
                            writer.Flush();
                            stream.Position = 0;

                            var data     = reader.ReadToEnd();
                            var expected = new TestStringBuilder(csv.Configuration.NewLine);
                            expected.AppendLine("id,name");
                            expected.AppendLine("1,name1");

                            Assert.AreEqual(expected.ToString(), data);
                        }
        }
        public void MapPropertiesToMultipleFieldsWhenWritingTest()
        {
            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
                        {
                            var list = new List <Test>
                            {
                                new Test {
                                    Id = 1, Name = "one"
                                }
                            };

                            csv.Context.RegisterClassMap <TestMap>();
                            csv.WriteRecords(list);
                            writer.Flush();
                            stream.Position = 0;

                            var expected = new TestStringBuilder(csv.Configuration.NewLine);
                            expected.AppendLine("Id1,Name1,Id2,Name2");
                            expected.AppendLine("1,one,1,one");

                            var result = reader.ReadToEnd();

                            Assert.Equal(expected.ToString(), result);
                        }
        }
        public void TypeMixedWithBoxedTypeTest()
        {
            var config = new CsvConfiguration(CultureInfo.InvariantCulture)
            {
                HasHeaderRecord = false,
            };

            using (var writer = new StringWriter())
                using (var csv = new CsvWriter(writer, config))
                {
                    var recordsTyped = new List <A>
                    {
                        new A {
                            Id = 1, Name = "one"
                        },
                    };
                    var recordsBoxed = new List <object>
                    {
                        new A {
                            Id = 2, Name = "two"
                        },
                    };

                    csv.Context.RegisterClassMap <AMap>();
                    csv.WriteRecords(recordsTyped);
                    csv.WriteRecords(recordsBoxed);
                    writer.Flush();

                    var expected = new TestStringBuilder(csv.Configuration.NewLine);
                    expected.AppendLine("1,one");
                    expected.AppendLine("2,two");

                    Assert.Equal(expected.ToString(), writer.ToString());
                }
        }
Beispiel #4
0
        public void WriteNoGetterTest()
        {
            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
                        {
                            var list = new List <TestPrivateGet>
                            {
                                new TestPrivateGet
                                {
                                    Id   = 1,
                                    Name = "one"
                                }
                            };
                            csv.WriteRecords(list);
                            writer.Flush();
                            stream.Position = 0;

                            var data     = reader.ReadToEnd();
                            var expected = new TestStringBuilder(csv.Configuration.NewLine);
                            expected.AppendLine("Id");
                            expected.AppendLine("1");

                            Assert.Equal(expected.ToString(), data);
                        }
        }
        public void NullReferenceTest()
        {
            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
                        {
                            csv.Context.RegisterClassMap <AMap>();

                            var list = new List <A>
                            {
                                new A
                                {
                                    Id = "1",
                                }
                            };
                            csv.WriteRecords(list);
                            writer.Flush();
                            stream.Position = 0;

                            var data     = reader.ReadToEnd();
                            var expected = new TestStringBuilder(csv.Configuration.NewLine);
                            expected.AppendLine("AId,BId,CId,DId");
                            expected.AppendLine("1,,,");
                            Assert.Equal(expected.ToString(), data);
                        }
        }
        public void NestedReferencesTest()
        {
            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
                        {
                            csv.Context.RegisterClassMap <AMap>();

                            var list = new List <A>();
                            for (var i = 0; i < 4; i++)
                            {
                                var row = i + 1;
                                list.Add(
                                    new A
                                {
                                    Id = "a" + row,
                                    B  = new B
                                    {
                                        Id = "b" + row,
                                        C  = new C
                                        {
                                            Id = "c" + row,
                                            D  = new D
                                            {
                                                Id = "d" + row
                                            }
                                        }
                                    }
                                });
                            }
                            ;

                            csv.WriteRecords(list);
                            writer.Flush();
                            stream.Position = 0;

                            var data = reader.ReadToEnd();

                            var expected = new TestStringBuilder(csv.Configuration.NewLine);
                            expected.AppendLine("AId,BId,CId,DId");
                            expected.AppendLine("a1,b1,c1,d1");
                            expected.AppendLine("a2,b2,c2,d2");
                            expected.AppendLine("a3,b3,c3,d3");
                            expected.AppendLine("a4,b4,c4,d4");
                            Assert.Equal(expected.ToString(), data);
                        }
        }
Beispiel #7
0
        public void WriteNestedHeadersTest()
        {
            var list = new List <Person>
            {
                new Person
                {
                    FirstName   = "first",
                    LastName    = "last",
                    HomeAddress = new Address
                    {
                        City   = "home city",
                        State  = "home state",
                        Street = "home street",
                        Zip    = "home zip",
                    },
                    WorkAddress = new Address
                    {
                        City   = "work city",
                        State  = "work state",
                        Street = "work street",
                        Zip    = "work zip",
                    },
                },
            };

            var config = new CsvConfiguration(CultureInfo.InvariantCulture)
            {
                ReferenceHeaderPrefix = args => $"{args.MemberName}."
            };

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var csv = new CsvWriter(writer, config))
                        {
                            csv.WriteRecords(list);
                            writer.Flush();
                            stream.Position = 0;

                            var text     = reader.ReadToEnd();
                            var expected = new TestStringBuilder(csv.Configuration.NewLine);
                            expected.AppendLine("FirstName,LastName,HomeAddress.Street,HomeAddress.City,HomeAddress.State,HomeAddress.Zip,WorkAddress.Street,WorkAddress.City,WorkAddress.State,WorkAddress.Zip");
                            expected.AppendLine("first,last,home street,home city,home state,home zip,work street,work city,work state,work zip");
                            Assert.Equal(expected.ToString(), text);
                        }
        }