示例#1
0
        public void RecordFieldUtility_GetField_3()
        {
            IEnumerable <RecordField> enumeration = _GetFieldEnumeration();

            RecordField[] fields = RecordFieldUtility.GetField(enumeration, 100);
            Assert.AreEqual(1, fields.Length);

            enumeration = _GetFieldEnumeration();
            fields      = RecordFieldUtility.GetField(enumeration, 1000);
            Assert.AreEqual(0, fields.Length);
        }
示例#2
0
        public void RecordFieldUtility_GetField_6()
        {
            int fieldCount = 0, subFieldCount = 0;
            IEnumerable <RecordField> enumeration    = _GetFieldEnumeration();
            Action <RecordField>      fieldAction    = field => { fieldCount++; };
            Action <SubField>         subFieldAction = suField => { subFieldCount++; };

            RecordField[] fields = RecordFieldUtility.GetField(enumeration, fieldAction, subFieldAction);
            Assert.AreEqual(4, fields.Length);
            Assert.AreEqual(4, fieldCount);
            Assert.AreEqual(20, subFieldCount);
        }
示例#3
0
        public void RecordFieldUtility_GetFieldCount_2()
        {
            IEnumerable <RecordField> enumeration = _GetFieldEnumeration();

            Assert.AreEqual(1, RecordFieldUtility.GetFieldCount(enumeration, 100));

            enumeration = _GetFieldEnumeration();
            Assert.AreEqual(2, RecordFieldUtility.GetFieldCount(enumeration, 200));

            enumeration = _GetFieldEnumeration();
            Assert.AreEqual(0, RecordFieldUtility.GetFieldCount(enumeration, 300));
        }
示例#4
0
        public void RecordFieldUtility_HaveSubField_2()
        {
            RecordField source = _GetField();

            Assert.IsFalse(RecordFieldUtility.HaveSubField(source, '0', '1'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'a', 'b'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'b', '0'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'c', '1'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'd', 'f'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'e', 'q'));
            Assert.IsFalse(RecordFieldUtility.HaveSubField(source, 'f', 'g'));
        }
示例#5
0
        public void RecordFieldUtility_HaveSubField_1()
        {
            RecordField source = _GetField();

            Assert.IsFalse(RecordFieldUtility.HaveSubField(source, '0'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'a'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'b'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'c'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'd'));
            Assert.IsTrue(RecordFieldUtility.HaveSubField(source, 'e'));
            Assert.IsFalse(RecordFieldUtility.HaveSubField(source, 'f'));
        }
示例#6
0
        public void RecordFieldUtility_GetField_18()
        {
            RecordFieldCollection collection = _GetFieldCollection();

            int[]       tags  = { 100, 200 };
            RecordField field = RecordFieldUtility.GetField(collection, tags, 1);

            Assert.IsNotNull(field);

            field = RecordFieldUtility.GetField(collection, tags, 10);
            Assert.IsNull(field);
        }
示例#7
0
        public void RecordFieldUtility_GetSubField_3()
        {
            RecordField field = _GetField();

            SubField[] subFields = RecordFieldUtility.GetSubField(field, 'a');
            Assert.AreEqual(1, subFields.Length);

            subFields = RecordFieldUtility.GetSubField(field, 'b');
            Assert.AreEqual(1, subFields.Length);

            subFields = RecordFieldUtility.GetSubField(field, 'x');
            Assert.AreEqual(0, subFields.Length);
        }
示例#8
0
        public void RecordField_FromXml_1()
        {
            const string text = @"<?xml version=""1.0"" encoding=""utf-16""?>"
                                + @"<field xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" tag=""200"" value=""Значение"">"
                                + @"  <subfield code=""a"" value=""Заглавие"" />"
                                + @"  <subfield code=""e"" value=""подзаголовочные"" />"
                                + @"  <subfield code=""f"" value=""об ответственности"" />"
                                + @"</field>";
            RecordField field = RecordFieldUtility.FromXml(text);

            Assert.AreEqual(200, field.Tag);
            Assert.AreEqual(3, field.SubFields.Count);
        }
示例#9
0
        public void RecordFieldUtility_GetFirstSubField_1()
        {
            RecordField field    = _GetField();
            SubField    subField = RecordFieldUtility.GetFirstSubField(field, 'a');

            Assert.IsNotNull(subField);

            subField = RecordFieldUtility.GetFirstSubField(field, 'b');
            Assert.IsNotNull(subField);

            subField = RecordFieldUtility.GetFirstSubField(field, 'x');
            Assert.IsNull(subField);
        }
示例#10
0
        public void RecordFieldUtility_GetFirstField_4()
        {
            RecordFieldCollection collection = _GetFieldCollection();
            RecordField           field      = RecordFieldUtility.GetFirstField(collection, 100, 200);

            Assert.IsNotNull(field);

            field = RecordFieldUtility.GetFirstField(collection, 900, 1000);
            Assert.IsNull(field);

            field = RecordFieldUtility.GetFirstField(collection, 900, 200);
            Assert.IsNotNull(field);
        }
示例#11
0
        public void RecordFieldUtility_GetField_16()
        {
            IEnumerable <RecordField> enumeration = _GetFieldEnumeration();

            int[]       tags  = { 100, 200 };
            RecordField field = RecordFieldUtility.GetField(enumeration, tags, 0);

            Assert.IsNotNull(field);

            enumeration = _GetFieldEnumeration();
            field       = RecordFieldUtility.GetField(enumeration, tags, 10);
            Assert.IsNull(field);
        }
示例#12
0
        public void RecordFieldUtility_GetFieldRegex_8()
        {
            IEnumerable <RecordField> enumeration = new []
            {
                new RecordField(100, "Field100"),
                new RecordField(200, "TheField200"),
            };

            int[]       tags      = { 100, 200 };
            string      textRegex = "^Field";
            RecordField field     = RecordFieldUtility.GetFieldRegex(enumeration, tags, textRegex, 0);

            Assert.IsNotNull(field);
        }
示例#13
0
        public void RecordFieldUtility_GetFieldRegex_7()
        {
            IEnumerable <RecordField> enumeration = new []
            {
                new RecordField(100, "Field100"),
                new RecordField(200, "TheField200"),
            };

            int[]  tags      = { 100, 200 };
            string textRegex = "^Field";

            RecordField[] fields = RecordFieldUtility.GetFieldRegex(enumeration, tags, textRegex);
            Assert.AreEqual(1, fields.Length);
        }
示例#14
0
        public void RecordFieldUtility_AddSubFields_4()
        {
            RecordField     field1    = new RecordField();
            List <SubField> subFields = new List <SubField>
            {
                new SubField('a', "SubA"),
                new SubField('b', "SubB"),
                new SubField('c', "SubC"),
            };
            RecordField field2 = RecordFieldUtility.AddSubFields(field1, subFields);

            Assert.AreSame(field1, field2);
            Assert.AreEqual(3, field1.SubFields.Count);
        }
示例#15
0
        public void RecordFieldUtility_GetSubField_2()
        {
            IEnumerable <RecordField> enumeration = _GetFieldEnumeration();

            SubField[] subFields = RecordFieldUtility.GetSubField(enumeration, 'a', 'b');
            Assert.AreEqual(2, subFields.Length);

            enumeration = _GetFieldEnumeration();
            subFields   = RecordFieldUtility.GetSubField(enumeration, 'b', 'z');
            Assert.AreEqual(1, subFields.Length);

            enumeration = _GetFieldEnumeration();
            subFields   = RecordFieldUtility.GetSubField(enumeration, 'x', 'z');
            Assert.AreEqual(0, subFields.Length);
        }
示例#16
0
        public void RecordFieldUtility_GetFirstField_1()
        {
            IEnumerable <RecordField> enumeration = _GetFieldEnumeration();
            RecordField field = RecordFieldUtility.GetFirstField(enumeration, 100);

            Assert.IsNotNull(field);

            enumeration = _GetFieldEnumeration();
            field       = RecordFieldUtility.GetFirstField(enumeration, 200);
            Assert.IsNotNull(field);

            enumeration = _GetFieldEnumeration();
            field       = RecordFieldUtility.GetFirstField(enumeration, 900);
            Assert.IsNull(field);
        }
示例#17
0
        public void RecordFieldUtility_GetFieldRegex_2()
        {
            IEnumerable <RecordField> enumeration = _GetFieldEnumeration();
            RecordField field = RecordFieldUtility.GetFieldRegex(enumeration, "^[12]", 2);

            Assert.IsNotNull(field);

            enumeration = _GetFieldEnumeration();
            field       = RecordFieldUtility.GetFieldRegex(enumeration, "^[12]", 5);
            Assert.IsNull(field);

            enumeration = _GetFieldEnumeration();
            field       = RecordFieldUtility.GetFieldRegex(enumeration, "^[89]", 0);
            Assert.IsNull(field);
        }
示例#18
0
        public void RecordFieldUtility_AllSubFields_1()
        {
            RecordField field1 = new RecordField()
                                 .AddSubField('a', "SubA")
                                 .AddSubField('b', "SubB")
                                 .AddSubField('c', "SubC");
            RecordField field2 = new RecordField()
                                 .AddSubField('d', "SubD")
                                 .AddSubField('e', "SubE")
                                 .AddSubField('f', "SubF");

            RecordField[] fields    = { field1, field2 };
            SubField[]    subFields = RecordFieldUtility.AllSubFields(fields);
            Assert.AreEqual(6, subFields.Length);
        }
示例#19
0
        public void RecordFieldUtility_GetField_17()
        {
            RecordFieldCollection    collection = _GetFieldCollection();
            Func <RecordField, bool> predicate  = field => field.HaveSubField('a');

            RecordField[] fields = RecordFieldUtility.GetField(collection, predicate);
            Assert.AreEqual(1, fields.Length);

            predicate = field => field.HaveSubField('j');
            fields    = RecordFieldUtility.GetField(collection, predicate);
            Assert.AreEqual(1, fields.Length);

            predicate = field => field.HaveSubField('x');
            fields    = RecordFieldUtility.GetField(collection, predicate);
            Assert.AreEqual(0, fields.Length);
        }
示例#20
0
        public void RecordFieldUtility_GetFirstFieldValue_2()
        {
            RecordFieldCollection collection = new RecordFieldCollection
            {
                new RecordField(100, "Field100"),
                new RecordField(200, "TheField200"),
            };
            string value = RecordFieldUtility.GetFirstFieldValue(collection, 100);

            Assert.IsNotNull(value);

            value = RecordFieldUtility.GetFirstFieldValue(collection, 200);
            Assert.IsNotNull(value);

            value = RecordFieldUtility.GetFirstFieldValue(collection, 900);
            Assert.IsNull(value);
        }
示例#21
0
        /*========================================================*/

        public MarcRecord Execute
        (
            IrbisConnection client,
            MarcRecord record
        )
        {
            MarcRecord result = new MarcRecord();

            foreach (FstLine fstLine in Lines)
            {
                string formatted = client.FormatRecord
                                   (
                    fstLine.Code,
                    record
                                   );
                if (!string.IsNullOrEmpty(formatted))
                {
                    formatted = formatted.Trim();
                    if (!string.IsNullOrEmpty(formatted))
                    {
                        formatted = formatted.Replace("\r", string.Empty);
                        string[] parts = formatted.Split
                                         (
                            new[] { '\n' },
                            StringSplitOptions.RemoveEmptyEntries
                                         );
                        foreach (string part in parts)
                        {
                            string trimmed = part.Trim();
                            if (!string.IsNullOrEmpty(trimmed))
                            {
                                RecordField field = RecordFieldUtility.Parse
                                                    (
                                    fstLine.Tag,
                                    trimmed
                                                    );
                                result.Fields.Add(field);
                            }
                        }
                    }
                }
            }

            return(result);
        }
示例#22
0
        public void RecordFieldUtility_ApplySubField_3()
        {
            RecordField field1 = new RecordField();
            RecordField field2 = RecordFieldUtility.ApplySubField
                                 (
                field1,
                'a',
                true,
                "SubA"
                                 );

            Assert.AreSame(field1, field2);
            Assert.AreEqual(1, field1.SubFields.Count);

            RecordField field3 = RecordFieldUtility.ApplySubField
                                 (
                field1,
                'a',
                false,
                "SubA"
                                 );

            Assert.AreSame(field1, field3);
            Assert.AreEqual(0, field1.SubFields.Count);

            RecordField field4 = RecordFieldUtility.ApplySubField
                                 (
                field1,
                '\0',
                true,
                "Sub0"
                                 );

            Assert.AreSame(field1, field4);
            Assert.AreEqual(0, field1.SubFields.Count);
        }