public void Be_Able_To_Parse_A_Given_Line_To_A_Name_Model()
        {
            var expected = new Name
            {
                MutKod = MutKod.RecordNotChanged,
                NmNr = 2,
                NmMemo = "ABBOI2",
                NmEtiket = "ABBOKINASE 250.000IE INJPDR",
                NmNm40 = "ABBOKINASE",
                NmNaam = "ABBOKINASE INJECTIEPOEDER FLACON 250.000IE"
            };

            const string data =
                @"002000000002ABBOI2ABBOKINASE 250.000IE INJPDRABBOKINASE                              ABBOKINASE INJECTIEPOEDER FLACON 250.000IE        0000000000000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Name>();
            var lines = serializer.ReadLines(memoryStream);

            var model = lines.FirstOrDefault();
            Assert.IsNotNull(model);
            Assert.AreEqual(expected.MutKod, model.MutKod);
            Assert.AreEqual(expected.NmEtiket, model.NmEtiket);
            Assert.AreEqual(expected.NmMemo, model.NmMemo);
            Assert.AreEqual(expected.NmNaam, model.NmNaam);
            Assert.AreEqual(expected.NmNm40, model.NmNm40);
            Assert.AreEqual(expected.NmNr, model.NmNr);
        }
        public void Skip_One_Of_Two_Lines_When_CannotParseLineException_Is_Thrown_On_One_Line()
        {
            const int expectedLineCount = 1;
            string data =
                "0025000R000012700001230000000000" + Environment.NewLine +
                "00250001000012700001250000000000" + Environment.NewLine;

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<RelationBetweenName>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Skip_One_Of_Two_Lines_When_CannotParseLineException_Is_Thrown_On_One_Line()
        {
            const int expectedLineCount = 1;
            string data =
                @"0750000007AETHER                                             000078000078SB000000000060297(C2H5)2O                           000000741200 0000007412000071500MG   000000000000000000000000000000" +
                Environment.NewLine +
                @"07500000051ENFLURAAN                                         000051000051SW000000013838169C3H2ClF5O                          000001845000 0000018450000000000XX   000000000000000000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<GenericName>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Skip_One_Of_Two_Lines_When_CannotParseLineException_Is_Thrown_On_One_Line()
        {
            const int expectedLineCount = 1;
            string data =
                @"002000000005ABC V5ABC VERB NR2  5MX2,5CM     ABC VERBAND                             ABC VERBAND NR2  5,00MX2,50CM                     0000000000000000000000000" +
                Environment.NewLine +
                @"000401210135400039527000542300001200000010090490000200404900000600 00000000   V 00000 0000020051990000000000021566       0900800000090088070000000000000000000000000009100000007547169000000000000000000000000000000000109200301062012           00000000000000000528                    00000000000000000000002750  00000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Product>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Skip_One_Of_Two_Lines_When_CannotParseLineException_Is_Thrown_On_One_Line()
        {
            const int expectedLineCount = 1;
            string data =
                @"002000000005ABC V5ABC VERB NR2  5MX2,5CM     ABC VERBAND                             ABC VERBAND NR2  5,00MX2,50CM                     0000000000000000000000000" +
                Environment.NewLine +
                @"00200000000ZABC V5ABC VERB NR2  5MX2,5CM     ABC VERBAND                             ABC VERBAND NR2  5,00MX2,50CM                     0000000000000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Name>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Be_Able_To_Parse_5_Lines_To_5_RelationBetweenName_Models()
        {
            const int expectedLineCount = 5;
            string data =
                "00250001000012700001230000000000" + Environment.NewLine +
                "00250001000012700001250000000000" + Environment.NewLine +
                "00250001000012700366920000000000" + Environment.NewLine +
                "00250001000012700558020000000000" + Environment.NewLine +
                "00250001000012700564910000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<RelationBetweenName>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Be_Able_To_Parse_A_Given_Line_To_A_Compostion_Model()
        {
            var expected = new Composition
            {
                MutKod = MutKod.RecordNotChanged,
                Code = 13099,
                GnEenh = 229,
                GnGnK = 1198,
                GnHoev = 200,
                GnStam = 41858,
                SrtCde = 1,
                StAdd = true,
                StEenh = 229,
                StHoev = 154.814m,
                ThsrTc = 1850,
                TsGneH = 2,
                TsStEh = 2
            };

            const string data =
                @"0731018500000010001309900119800000020000000020002290418580000001548140002000229J0000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Composition>();
            var lines = serializer.ReadLines(memoryStream);

            var model = lines.FirstOrDefault();
            Assert.IsNotNull(model);
            Assert.AreEqual(expected.MutKod, model.MutKod);
            Assert.AreEqual(expected.Code, model.Code);
            Assert.AreEqual(expected.GnEenh, model.GnEenh);
            Assert.AreEqual(expected.GnGnK, model.GnGnK);
            Assert.AreEqual(expected.GnHoev, model.GnHoev);
            Assert.AreEqual(expected.GnStam, model.GnStam);
            Assert.AreEqual(expected.SrtCde, model.SrtCde);
            Assert.AreEqual(expected.StAdd, model.StAdd);
            Assert.AreEqual(expected.StEenh, model.StEenh);
            Assert.AreEqual(expected.StHoev, model.StHoev);
            Assert.AreEqual(expected.ThsrTc, model.ThsrTc);
            Assert.AreEqual(expected.TsGneH, model.TsGneH);
            Assert.AreEqual(expected.TsStEh, model.TsStEh);
        }
        public void Be_Able_To_Parse_5_Lines_To_5_Compostion_Models()
        {
            const int expectedLineCount = 5;
            string data =
                "0731018500000010001309900119800000020000000020002290418580000001548140002000229J0000000000000000" +
                Environment.NewLine +
                "0731018500000010001349800217800000001250000020002290021780000000125000002000229N0000000000000000" +
                Environment.NewLine +
                "0731018500000010001349803408800000002500000020002290383770000000222980002000229N0000000000000000" +
                Environment.NewLine +
                "0731018500000010001352800954700000000500000020002290095470000000050000002000229J0000000000000000" +
                Environment.NewLine +
                "0731018500000010001356005656100000000500000020002290444310000000044580002000229J0000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Composition>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Be_Able_To_Parse_A_Given_Line_To_A_GenericName_Model()
        {
            var expected = new GenericName
            {
                GnGnAm = "COMBINATIE PREPARAAT",
                GnGnK =  00019,
                MutKod = MutKod.RecordNotChanged
            };
            const string data =
                @"07500000019COMBINATIE PREPARAAT                              000019000019SW000000000000000                                   000000000000 0000000000000000000XX   000000000000000000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<GenericName>();
            var lines = serializer.ReadLines(memoryStream);

            var model = lines.FirstOrDefault();
            Assert.IsNotNull(model);
            Assert.AreEqual(expected.GnGnAm, model.GnGnAm);
            Assert.AreEqual(expected.GnGnK, model.GnGnK);
            Assert.AreEqual(expected.MutKod, model.MutKod);
        }
        public void Be_Able_To_Parse_5_Lines_To_5_GenericName_Models()
        {
            const int expectedLineCount = 5;
            string data =
                @"07500000019COMBINATIE PREPARAAT                              000019000019SW000000000000000                                   000000000000 0000000000000000000XX   000000000000000000000000000000" +
                Environment.NewLine +
                @"07500000027CYCLOPROPAAN                                      000027000027SW000000000075194C3H6                               000000420800 0000004208000000000XX   000000000000000000000000000000" +
                Environment.NewLine +
                @"07500000035LACHGAS                                           000035000035SW000010010024972N2O                                000000440100 0000004401000000000XX   000000000000000000000000000000" +
                Environment.NewLine +
                @"07500000043CHLOROFORM                                        000043000043SB000000000067663CHCl3                              000001194000 0000011940000147600ML   000000000000000000000000000000" +
                Environment.NewLine +
                @"07500000051ENFLURAAN                                         000051000051SW000000013838169C3H2ClF5O                          000001845000 0000018450000000000XX   000000000000000000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<GenericName>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Be_Able_To_Parse_5_Lines_To_5_Product_Models()
        {
            const int expectedLineCount = 5;
            string data =
                @"000401210135400039527000542300001200000010090490000200404900000600 00000000   V 00000 0000020051990000000000021566       0900800000090088070000000000000000000000000009100000007547169000000000000000000000000000000000109200301062012           00000000000000000528                    00000000000000000000002750  00000000000" +
                Environment.NewLine +
                @"000401210294600040983000086000005000000010090490000100404900005000 00000000R  V 00000 0000027111985000010000050411481    03077000000307780700000000000000000000000046011110000000000000000246000002460000000000000000001092003010620120V03AAAO  V00000102917100002460                    00000000000000000000001032  00000000000" +
                Environment.NewLine +
                @"000401210391800092339000102900000600000010090490000600407400000100 00000000R  V 00000 00000280419760000003000199898      2262400000226248070000102197700000000000009511111000000000000000056300000563000000000000000000109200301062012XXXXXXXXXXX00000563000000005630                    00000000000000000000006305  00000000000" +
                Environment.NewLine +
                @"000401210398500202746000103400002000000010090490000500404900000400 00000000A  V 00000 00000111119770000003333161         0155400000060928070000000000000000000000000009100000005141509000000000000000000000000000000000109200301062012           00000000000000000344                    00000000000000000000008186  00000000000" +
                Environment.NewLine +
                @"000401210418300202886000104600020000000010090490000100404900020000U31122012R  V 00000 00000041019720000005333            0844300000084438070000000000000000000000011781111000000000000000002760000027600000000311220110109200301062012XXXXXXXXXXX00000027600000000276                    00000000000000013805001218  00000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Product>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Be_Able_To_Parse_A_Given_Line_To_A_RelationBetweenName_Model()
        {
            var expected = new RelationBetweenName
            {
                MutKod = MutKod.RecordNotChanged,
                NmRNr = 001,
                NmNrIn = 0000127,
                NmNrUit = 0000123
            };
            const string data = "00250001000012700001230000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<RelationBetweenName>();
            var lines = serializer.ReadLines(memoryStream);

            var model = lines.FirstOrDefault();
            Assert.IsNotNull(model);
            Assert.AreEqual(expected.MutKod, model.MutKod);
            Assert.AreEqual(expected.NmNrIn, model.NmNrIn);
            Assert.AreEqual(expected.NmNrUit, model.NmNrUit);
            Assert.AreEqual(expected.NmRNr, model.NmRNr);
        }
        public void Be_Able_To_Parse_5_Lines_To_5_Name_Models()
        {
            const int expectedLineCount = 5;
            string data =
                @"002000000001AAMBZ AAMBEIENZETPIL VOGEL       AAMBEIENZETPIL VOGEL                    AAMBEIENZETPIL VOGEL                              0000000000000000000000000" +
                Environment.NewLine +
                @"002000000002ABBOI2ABBOKINASE 250.000IE INJPDRABBOKINASE                              ABBOKINASE INJECTIEPOEDER FLACON 250.000IE        0000000000000000000000000" +
                Environment.NewLine +
                @"002000000003ABBOT2ABBOTICINE 200MG KAUWTABLETABBOTICINE                              ABBOTICINE KAUWTABLET 200MG                       0000000000000000000000000" +
                Environment.NewLine +
                @"002000000005ABC V5ABC VERB NR2  5MX2,5CM     ABC VERBAND                             ABC VERBAND NR2  5,00MX2,50CM                     0000000000000000000000000" +
                Environment.NewLine +
                @"002000000007ABC V6ABC VERB NR7  6,85MX3,75CM ABC VERBAND                             ABC VERBAND NR7  6,85MX3,75CM                     0000000000000000000000000" +
                Environment.NewLine;

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Name>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }
        public void Be_Able_To_Parse_A_Given_Line_To_A_Product_Model()
        {
            var expected = new Product
            {
                AtKode = 12101354,
                AtNmNr = 5423,
                HpKode = 39527,
                MutKod = MutKod.RecordNotChanged
            };
            const string data =
                @"000401210135400039527000542300001200000010090490000200404900000600 00000000   V 00000 0000020051990000000000021566       0900800000090088070000000000000000000000000009100000007547169000000000000000000000000000000000109200301062012           00000000000000000528                    00000000000000000000002750  00000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Product>();
            var lines = serializer.ReadLines(memoryStream);

            var model = lines.FirstOrDefault();
            Assert.IsNotNull(model);
            Assert.AreEqual(expected.AtKode, model.AtKode);
            Assert.AreEqual(expected.AtNmNr, model.AtNmNr);
            Assert.AreEqual(expected.HpKode, model.HpKode);
            Assert.AreEqual(expected.MutKod, model.MutKod);
        }
        public void Skip_One_Of_Two_Lines_When_CannotParseLineException_Is_Thrown_On_One_Line()
        {
            const int expectedLineCount = 1;
            string data =
                "0731018500000010001309900119800000020000000020002290418580000001548140002000229J0000000000000000" +
                Environment.NewLine +
                "0731018500000010001349800217800000001250000020002290021780000000125000002000229T0000000000000000";

            byte[] dataBytes = Encoding.UTF8.GetBytes(data);
            var memoryStream = new MemoryStream(dataBytes);
            var serializer = new GStandardFileSerializer<Composition>();
            var lines = serializer.ReadLines(memoryStream);

            Assert.IsNotNull(lines);
            Assert.AreEqual(expectedLineCount, lines.Count());
        }