Esempio n. 1
0
 public void SetTrailerRowType_AlreadySetException()
 {
     ExpectException.Throws <InvalidOperationException>("The TrailerRowType cannot be set more than once.", () =>
     {
         var dff = new DelimitedFileFormat <Person>("X");
         dff.SetTrailerRowType <Trailer>("T", TrailerValidator.Default);
         dff.SetTrailerRowType <Trailer>("T", TrailerValidator.Default);
     });
 }
Esempio n. 2
0
        public void Write_FileValidation_MustHaveHeaderRow_WithContentNoHeader()
        {
            try
            {
                var sb = new StringBuilder();
                using (var sw = new StringWriter(sb))
                {
                    var ff = new DelimitedFileFormat <Data>();
                    var fw = new FileWriter <Data>(sw, ff);
                    ff.SetHeaderRowType <Header>();
                    ff.SetTrailerRowType <Trailer>();
                    ff.FileValidation = FileValidation.MustHaveHeaderRow;
                    fw.Write(new Data());
                    Assert.Fail();
                }
            }
            catch (FileValidationException ex)
            {
                Assert.AreEqual(FileValidation.MustHaveHeaderRow, ex.FileValidation);
                Assert.AreEqual("The first record must be identified as a Header row.", ex.Message);
                return;
            }

            Assert.Fail();
        }
Esempio n. 3
0
        public void Write_FileValidation_MustHaveAtLeastOneContentRow_WithTrailerRecord()
        {
            try
            {
                var sb = new StringBuilder();
                using (var sw = new StringWriter(sb))
                {
                    var ff = new DelimitedFileFormat <Data>();
                    var fw = new FileWriter <Data>(sw, ff);
                    ff.SetHeaderRowType <Header>();
                    ff.SetTrailerRowType <Trailer>();
                    ff.FileValidation = FileValidation.MustHaveAtLeastOneContentRow;
                    fw.WriteTrailer(new Trailer());
                    fw.EndOfFile();
                }
            }
            catch (FileValidationException ex)
            {
                Assert.AreEqual(FileValidation.MustHaveAtLeastOneContentRow, ex.FileValidation);
                Assert.AreEqual("The file must contain at least one content row.", ex.Message);
                return;
            }

            Assert.Fail();
        }
Esempio n. 4
0
 public void SetTrailerRowType_SameAsContentException()
 {
     ExpectException.Throws <InvalidOperationException>("The TrailerRowType cannot be the same as the ContentRowType.", () =>
     {
         var dff = new DelimitedFileFormat <Person>("X");
         dff.SetTrailerRowType <Person>("T");
     });
 }
Esempio n. 5
0
 public void SetTrailerRowType_NoRecIdException()
 {
     ExpectException.Throws <ArgumentNullException>("The record identifier is required where the file is considered hierarchical.", () =>
     {
         var dff = new DelimitedFileFormat <Person>("X");
         dff.SetTrailerRowType <Trailer>();
     });
 }
Esempio n. 6
0
 public void SetTrailerRowType_NoHierarchyException()
 {
     ExpectException.Throws <ArgumentException>("The record identifier can not be specified where the file is not considered hierarchical.", () =>
     {
         var dff = new DelimitedFileFormat <Person>();
         dff.SetTrailerRowType <Trailer>("T");
     });
 }
Esempio n. 7
0
 public void SetTrailerRowType_SameContentRecIdException()
 {
     ExpectException.Throws <ArgumentException>("The TrailerRecordIdentifier cannot be the same as the ContentRecordIdentifier.", () =>
     {
         var dff = new DelimitedFileFormat <Person>("X");
         dff.SetTrailerRowType <Trailer>("X");
     });
 }
Esempio n. 8
0
 public void SetHeaderRowType_SameAsTrailerException()
 {
     ExpectException.Throws <ArgumentException>("The HeaderRowType cannot be the same as the TrailerRowType.", () =>
     {
         var dff = new DelimitedFileFormat <Person>("X");
         dff.SetTrailerRowType <Trailer>("T");
         dff.SetHeaderRowType <Trailer>("H");
     });
 }
Esempio n. 9
0
        public void SetTrailierRowType_Override()
        {
            var dff = new DelimitedFileFormat <Person>("X");

            dff.SetTrailerRowType <Trailer>("H", TrailerValidator.Default);
            Assert.AreEqual(typeof(Trailer), dff.TrailerRowType);
            Assert.AreEqual("H", dff.TrailerRecordIdentifier);
            Assert.AreSame(TrailerValidator.Default, dff.TrailerValidator);
        }
Esempio n. 10
0
        public void SetTrailerRowType_Default()
        {
            var dff = new DelimitedFileFormat <Person>();

            dff.SetTrailerRowType <Trailer>();
            Assert.AreEqual(typeof(Trailer), dff.TrailerRowType);
            Assert.IsNull(dff.TrailerRecordIdentifier);
            Assert.IsNull(dff.TrailerValidator);
        }
Esempio n. 11
0
 public void WriteTrailer_DifferentHeaderRowTypeException()
 {
     ExpectException.Throws <ArgumentException>("Trailer Type must be the same as the specified FileFormat TrailerRowType.", () =>
     {
         var sb = new StringBuilder();
         using (var sw = new StringWriter(sb))
         {
             var ff = new DelimitedFileFormat <Data>();
             var fw = new FileWriter <Data>(sw, ff);
             ff.SetTrailerRowType <Trailer>();
             fw.WriteTrailer(new Header());
         }
     });
 }
Esempio n. 12
0
        public void Write_FileValidation_MustHaveAtLeastOneContentRow_NoRecords()
        {
            var sb = new StringBuilder();

            using (var sw = new StringWriter(sb))
            {
                var ff = new DelimitedFileFormat <Data>();
                var fw = new FileWriter <Data>(sw, ff);
                ff.SetHeaderRowType <Header>();
                ff.SetTrailerRowType <Trailer>();
                ff.FileValidation = FileValidation.MustHaveAtLeastOneContentRow;
                fw.EndOfFile();
            }
        }
Esempio n. 13
0
 public void WriteTrailer_EndOfFileException()
 {
     ExpectException.Throws <InvalidOperationException>("Attempt made to write past the end of the file.", () =>
     {
         var sb = new StringBuilder();
         using (var sw = new StringWriter(sb))
         {
             var ff = new DelimitedFileFormat <Data>();
             var fw = new FileWriter <Data>(sw, ff);
             ff.SetTrailerRowType <Trailer>();
             fw.EndOfFile();
             fw.WriteTrailer(new Trailer());
         }
     });
 }
Esempio n. 14
0
 public void WriteTrailer_WriteAfterTrailerException()
 {
     ExpectException.Throws <InvalidOperationException>("Attempt made to write past a Trailer row; Trailer must be the last record.", () =>
     {
         var sb = new StringBuilder();
         using (var sw = new StringWriter(sb))
         {
             var ff = new DelimitedFileFormat <Data>();
             var fw = new FileWriter <Data>(sw, ff);
             ff.SetTrailerRowType <Trailer>();
             fw.WriteTrailer(new Trailer());
             fw.Write(new Data());
         }
     });
 }
Esempio n. 15
0
 public void WriteTrailer_NotFirstRecordException()
 {
     ExpectException.Throws <InvalidOperationException>("A Trailer can only be written once.", () =>
     {
         var sb = new StringBuilder();
         using (var sw = new StringWriter(sb))
         {
             var ff = new DelimitedFileFormat <Data>();
             var fw = new FileWriter <Data>(sw, ff);
             ff.SetTrailerRowType <Trailer>();
             fw.WriteTrailer(new Trailer());
             fw.WriteTrailer(new Trailer());
         }
     });
 }
Esempio n. 16
0
        public void Write_FileValidation_MustHaveTrailerRow_WithContentAndTrailer()
        {
            var sb = new StringBuilder();

            using (var sw = new StringWriter(sb))
            {
                var ff = new DelimitedFileFormat <Data>();
                var fw = new FileWriter <Data>(sw, ff);
                ff.SetHeaderRowType <Header>();
                ff.SetTrailerRowType <Trailer>();
                ff.FileValidation = FileValidation.MustHaveTrailerRow;
                fw.Write(new Data());
                fw.WriteTrailer(new Trailer());
                fw.EndOfFile();
            }
        }
Esempio n. 17
0
        public void WriteTrailer()
        {
            var sb = new StringBuilder();

            using (var sw = new StringWriter(sb))
            {
                var ff = new DelimitedFileFormat <Data>();
                var fw = new FileWriter <Data>(sw, ff);
                ff.SetTrailerRowType <Trailer>();
                var result = fw.WriteTrailer(new Trailer {
                    Col = "trl"
                });
                Assert.AreEqual(FileContentStatus.Trailer, result.Status);
                Assert.IsFalse(result.HasErrors);
                result = fw.EndOfFile();
                Assert.AreEqual(FileContentStatus.EndOfFile, result.Status);
                Assert.IsFalse(result.HasErrors);
                Assert.AreEqual("\"trl\"\r\n", sb.ToString());
            }
        }