public void Add_Columns_Manually_Test()
        {
            Type type = typeof (Measurement);

            DocumentFormatDefinitionBuilder<Measurement> builder = new DocumentFormatDefinitionBuilder<Measurement>("\t", true)
                .SetCommentString("'")
                .SetExportHeaderLine(true, "' ");

            builder.AddColumn(type.GetProperty("Name"));
            builder.AddColumn(type.GetProperty("X"), "0.000");
            builder.AddColumn(type.GetProperty("Y"), "0.000");
            builder.AddColumn(type.GetProperty("Z"), "0.000");
            builder.AddColumn(type.GetProperty("DateTime"), "dd.MM.yyyy HH:mm:ss");
            builder.AddColumn(type.GetProperty("IsActive"));

            IDocumentFormatDefinition<Measurement> definition = builder.Build();

            string exportResult = definition.Export(new[] {_measurement});

            Assert.AreEqual(@"' Name 	X     	Y     	Z     	DateTime           	IsActive
            Point01	10.000	20.000	30.000	03.03.2013 14:48:00	T", exportResult);

            List<Measurement> importList = definition.Import(exportResult);
            AssertAreEqual(importList);
        }
Пример #2
0
        public void Add_Columns_Manually_Test()
        {
            Type type = typeof(Measurement);

            DocumentFormatDefinitionBuilder <Measurement> builder = new DocumentFormatDefinitionBuilder <Measurement>("\t", true)
                                                                    .SetCommentString("'")
                                                                    .SetExportHeaderLine(true, "' ");

            builder.AddColumn(type.GetProperty("Name"));
            builder.AddColumn(type.GetProperty("X"), "0.000");
            builder.AddColumn(type.GetProperty("Y"), "0.000");
            builder.AddColumn(type.GetProperty("Z"), "0.000");
            builder.AddColumn(type.GetProperty("DateTime"), "dd.MM.yyyy HH:mm:ss");
            builder.AddColumn(type.GetProperty("IsActive"));

            IDocumentFormatDefinition <Measurement> definition = builder.Build();

            string exportResult = definition.Export(new[] { _measurement });

            Assert.AreEqual(@"' Name    X       Y       Z       DateTime            IsActive
Point01	10.000	20.000	30.000	03.03.2013 14:48:00	T"    , exportResult);

            List <Measurement> importList = definition.Import(exportResult);

            AssertAreEqual(importList);
        }
Пример #3
0
        public void AutoBuild_Test()
        {
            IDocumentFormatDefinition <Measurement> definition = DocumentFormatDefinitionBuilder <Measurement> .AutoBuild("\t", true, "'", true, "' ");

            string             exportResult = definition.Export(new[] { _measurement });
            List <Measurement> importList   = definition.Import(exportResult);

            AssertAreEqual(importList);
        }
        public void DataOverflowInColumn_ThrowsExportException()
        {
            DocumentFormatDefinitionBuilder <ChequeRow> definition = GetDefinition();
            var record = new ChequeRow()
            {
                AccountNo = 1234567890123                  // Overflowed
            };
            IDocumentFormatDefinition <ChequeRow> document = definition.Build();

            Assert.Throws <ExportException>(() => document.Export(new ChequeRow[] { record }));
        }
Пример #5
0
        private IDocumentFormatDefinition <State> GetDefinition()
        {
            // Possible Values are:
            // Empty              the state is not a member of the EU, leave property EU_MEMBER null
            // 'N'                the state is not a member of the EU, so leave the property Year empty
            // 'J, seit yyyy'     the state is a member of the EU, so set property Year accordingly
            IDocumentFormatDefinition <State.MemberOfEU> memberOfEuColumnDefinition = new DocumentFormatDefinitionBuilder <State.MemberOfEU>(",", false)
                                                                                      .SetLineEndsWithColumnSeparator(false)
                                                                                      .AddColumn(x => x.IsMember, "J", "N")
                                                                                      .AddColumn(x => x.Year, builder => builder
                                                                                                 .SetImportFunc(s =>
            {
                string year = s.Substring(5);
                return(Int32.Parse(year));
            })
                                                                                                 .SetExportFunc((x, i) => i.HasValue ? " seit " + i.Value : ""))
                                                                                      .Build();


            IDocumentFormatDefinition <State> definition = new DocumentFormatDefinitionBuilder <State>(";", false)
                                                           .SetInstantiator(() => new State())
                                                           .SetExportHeaderLine(true)
                                                           .AddColumn(x => x.ISO_NUM)
                                                           .AddColumn(x => x.ISO_2)
                                                           .AddColumn(x => x.ISO_3)
                                                           .AddColumn(x => x.NAME_GER)
                                                           .AddColumn(x => x.NAME_GER_OFF)
                                                           .AddColumn(x => x.NAME_ENG)
                                                           .AddColumn(x => x.NAME_ENG_OFF)
                                                           .AddColumn(x => x.STATUS)
                                                           .AddColumn(x => x.ASSOCIATED)
                                                           .AddColumn(x => x.DOCUMENT)
                                                           .AddColumn(x => x.EU_MEMBER, builder => builder
                                                                      .SetImportFunc(s => memberOfEuColumnDefinition.Import(new StringReader(s)).Single())
                                                                      .SetExportFunc((item, m) => memberOfEuColumnDefinition.Export(new [] { m }).TrimEnd(',')))
                                                           .AddColumn(x => x.PART_OF_EU, "J", "N")
                                                           .AddColumn(x => x.CONTINENT)
                                                           .AddColumn(x => x.PREFIX)
                                                           .AddColumn(x => x.TLD)
                                                           .AddColumn(x => x.CAR_PLATE)
                                                           .AddColumn(x => x.DATE_OF_FORMATION)
                                                           .AddColumn(x => x.DATE_OF_RESOLUTION)
                                                           .AddColumn(x => x.EXIST_ADD)
                                                           .Build();

            return(definition);
        }
        private IDocumentFormatDefinition<State> GetDefinition()
        {
            // Possible Values are:
            // Empty              the state is not a member of the EU, leave property EU_MEMBER null
            // 'N'                the state is not a member of the EU, so leave the property Year empty
            // 'J, seit yyyy'     the state is a member of the EU, so set property Year accordingly
            IDocumentFormatDefinition<State.MemberOfEU> memberOfEuColumnDefinition = new DocumentFormatDefinitionBuilder<State.MemberOfEU>(",", false)
                .SetLineEndsWithColumnSeparator(false)
                .AddColumn(x => x.IsMember, "J", "N")
                .AddColumn(x => x.Year, builder => builder
                                                       .SetImportFunc(s =>
                                                                          {
                                                                              string year = s.Substring(5);
                                                                              return Int32.Parse(year);
                                                                          })
                                                       .SetExportFunc((x,i) => i.HasValue ? " seit " + i.Value : ""))
                .Build();

            IDocumentFormatDefinition<State> definition = new DocumentFormatDefinitionBuilder<State>(";", false)
                .SetInstantiator(() => new State())
                .SetExportHeaderLine(true)
                .AddColumn(x => x.ISO_NUM)
                .AddColumn(x => x.ISO_2)
                .AddColumn(x => x.ISO_3)
                .AddColumn(x => x.NAME_GER)
                .AddColumn(x => x.NAME_GER_OFF)
                .AddColumn(x => x.NAME_ENG)
                .AddColumn(x => x.NAME_ENG_OFF)
                .AddColumn(x => x.STATUS)
                .AddColumn(x => x.ASSOCIATED)
                .AddColumn(x => x.DOCUMENT)
                .AddColumn(x => x.EU_MEMBER, builder => builder
                    .SetImportFunc(s => memberOfEuColumnDefinition.Import(new StringReader(s)).Single())
                    .SetExportFunc((item, m) => memberOfEuColumnDefinition.Export(new [] { m }).TrimEnd(',')))
                .AddColumn(x => x.PART_OF_EU, "J", "N")
                .AddColumn(x => x.CONTINENT)
                .AddColumn(x => x.PREFIX)
                .AddColumn(x => x.TLD)
                .AddColumn(x => x.CAR_PLATE)
                .AddColumn(x => x.DATE_OF_FORMATION)
                .AddColumn(x => x.DATE_OF_RESOLUTION)
                .AddColumn(x => x.EXIST_ADD)
                .Build();

            return definition;
        }
        public void ValuesWithFullWidth_ExportedByFillingOutFullSpace()
        {
            DocumentFormatDefinitionBuilder <ChequeRow> definition = GetDefinition();

            var record = new ChequeRow()
            {
                AccountNo    = 123456789012,
                RecordType   = ChequeRow.RecordTypeEnum.Outstanding,
                AmountCents  = 210987654321,
                SerialNumber = 9876543210,
                Date         = new DateTime(2013, 12, 31)
            };
            string resultString = definition.Build().Export(new ChequeRow[] { record });

            Assert.That(resultString,
                        Is.EqualTo("123456789012O987654321021098765432120131231" +
                                   new string(' ', 1 + 50 + 16 + 256 + 16)));
        }
        public void RightJustifiedValues_AreFilledUpWithFillChar()
        {
            DocumentFormatDefinitionBuilder <ChequeRow> definition = GetDefinition();

            var record = new ChequeRow()
            {
                AccountNo    = 123456789,
                RecordType   = ChequeRow.RecordTypeEnum.Outstanding,
                AmountCents  = 152,
                SerialNumber = 123,
                Date         = new DateTime(2013, 12, 31)
            };
            string resultString = definition.Build().Export(new ChequeRow[] { record });

            Assert.That(resultString,
                        Is.EqualTo("000123456789O000000012300000000015220131231" +
                                   new string(' ', 1 + 50 + 16 + 256 + 16)));
        }
Пример #9
0
        public void PropertyList_Test()
        {
            var propertyList = new List <PropertyInfo>
            {
                typeof(Measurement).GetProperty("Name"),
                typeof(Measurement).GetProperty("X"),
                typeof(Measurement).GetProperty("Y"),
                typeof(Measurement).GetProperty("Z"),
                typeof(Measurement).GetProperty("DateTime"),
                typeof(Measurement).GetProperty("IsActive"),
            };

            IDocumentFormatDefinition <Measurement> definition = DocumentFormatDefinitionBuilder <Measurement> .Build(propertyList, "\t", true, "'", true, "' ");

            string             exportResult = definition.Export(new[] { _measurement });
            List <Measurement> importList   = definition.Import(exportResult);

            AssertAreEqual(importList);
        }
 private DocumentFormatDefinitionBuilder<ChequeRow> GetDefinition()
 {
     var definition = new DocumentFormatDefinitionBuilder<ChequeRow>(string.Empty, false);
     definition.AddColumn(q => q.AccountNo,
                          c => c.SetColumnWidth(12).SetAlignment(ColumnAlignment.Right).SetFillChar('0').ThrowOnOverflow());
     definition.AddColumn(q => q.RecordType, c => c.SetExportFunc(EnumConvertFunc));
     definition.AddColumn(q => q.SerialNumber,
                          c => c.SetColumnWidth(10).SetAlignment(ColumnAlignment.Right).SetFillChar('0').ThrowOnOverflow());
     definition.AddColumn(q => q.AmountCents,
                          c => c.SetColumnWidth(12).SetAlignment(ColumnAlignment.Right).SetFillChar('0').ThrowOnOverflow());
     definition.AddColumn(q => q.Date,
                          c => c.SetColumnWidth(8).SetStringFormat("yyyyMMdd"));
     definition.AddDummyColumn(1);
     definition.AddDummyColumn(50);
     definition.AddDummyColumn(16);
     definition.AddDummyColumn(256);
     definition.AddDummyColumn(16);
     definition.SetExportHeaderLine(false);
     definition.SetTrimLineEnds(false);
     return definition;
 }
        private DocumentFormatDefinitionBuilder <ChequeRow> GetDefinition()
        {
            var definition = new DocumentFormatDefinitionBuilder <ChequeRow>(string.Empty, false);

            definition.AddColumn(q => q.AccountNo,
                                 c => c.SetColumnWidth(12).SetAlignment(ColumnAlignment.Right).SetFillChar('0').ThrowOnOverflow());
            definition.AddColumn(q => q.RecordType, c => c.SetExportFunc(EnumConvertFunc));
            definition.AddColumn(q => q.SerialNumber,
                                 c => c.SetColumnWidth(10).SetAlignment(ColumnAlignment.Right).SetFillChar('0').ThrowOnOverflow());
            definition.AddColumn(q => q.AmountCents,
                                 c => c.SetColumnWidth(12).SetAlignment(ColumnAlignment.Right).SetFillChar('0').ThrowOnOverflow());
            definition.AddColumn(q => q.Date,
                                 c => c.SetColumnWidth(8).SetStringFormat("yyyyMMdd"));
            definition.AddDummyColumn(1);
            definition.AddDummyColumn(50);
            definition.AddDummyColumn(16);
            definition.AddDummyColumn(256);
            definition.AddDummyColumn(16);
            definition.SetExportHeaderLine(false);
            definition.SetTrimLineEnds(false);
            return(definition);
        }