Пример #1
0
        public void MultipleRecordDefinitionsPerflatFileShouldBeSupported()
        {
            FlatFile flatFile = GetDokDat();

            FixedFileFormatReader reader = new FixedFileFormatReader(flatFile);
            int numberOfRecords          = 0;

            while (reader.MoveNext())
            {
                Record record = reader.Current;
                record.Should().NotBeNull();
                record.Fields[0].GetName().Should().Be("Posttype");
                record.Fields[0].Value.Should().BeOneOf("B", "N");

                string posttype = record.Fields[0].Value;
                if (posttype == "B")
                {
                    VerifyBrev(record);
                }
                else if (posttype == "N")
                {
                    VerifyNotat(record);
                }

                numberOfRecords++;
            }

            numberOfRecords.Should().Be(195);

            reader.MoveNext().Should().BeFalse();
        }
Пример #2
0
        public void ShouldUseRecordDefinitionFixedLengthAndSkipRecordSeparator()
        {
            AddmlFlatFileDefinition fileDefinition = new AddmlFlatFileDefinitionBuilder()
                                                     .WithRecordSeparator("CRLF")
                                                     .Build();
            AddmlRecordDefinition recordDefinition = new AddmlRecordDefinitionBuilder()
                                                     .WithAddmlFlatFileDefinition(fileDefinition)
                                                     .WithRecordLength(7)
                                                     .Build();
            AddmlFieldDefinition fieldDefinition1 = new AddmlFieldDefinitionBuilder()
                                                    .WithRecordDefinition(recordDefinition)
                                                    .WithFixedLength(1)
                                                    .Build();
            AddmlFieldDefinition fieldDefinition2 = new AddmlFieldDefinitionBuilder()
                                                    .WithRecordDefinition(recordDefinition)
                                                    .WithFixedLength(2)
                                                    .Build();
            AddmlFieldDefinition fieldDefinition3 = new AddmlFieldDefinitionBuilder()
                                                    .WithRecordDefinition(recordDefinition)
                                                    .WithFixedLength(4)
                                                    .Build();

            FlatFile file = new FlatFile(fileDefinition);

            var sb = new StringBuilder();

            sb.Append("1121234\r\n");
            sb.Append("AABABCD\r\n");
            sb.Append("       \r\n");
            MemoryStream stream = CreateStream(sb.ToString());

            FixedFileFormatReader reader = new FixedFileFormatReader(file, stream);

            reader.MoveNext().Should().BeTrue();
            reader.Current.Value.Should().Be("1121234");
            reader.Current.Fields[0].Value.Should().Be("1");
            reader.Current.Fields[1].Value.Should().Be("12");
            reader.Current.Fields[2].Value.Should().Be("1234");
            reader.MoveNext().Should().BeTrue();
            reader.Current.Value.Should().Be("AABABCD");
            reader.Current.Fields[0].Value.Should().Be("A");
            reader.Current.Fields[1].Value.Should().Be("AB");
            reader.Current.Fields[2].Value.Should().Be("ABCD");
            reader.MoveNext().Should().BeTrue();
            reader.Current.Value.Should().Be("       ");
            reader.Current.Fields[0].Value.Should().Be(" ");
            reader.Current.Fields[1].Value.Should().Be("  ");
            reader.Current.Fields[2].Value.Should().Be("    ");
            reader.MoveNext().Should().BeFalse();
        }