public void MarcRecordUtility_ParseAllFormat_1()
        {
            string host = "host";
            Mock <IIrbisConnection> mock = new Mock <IIrbisConnection>();

            mock.SetupGet(c => c.Host).Returns(host);
            IIrbisConnection connection = mock.Object;
            AbstractEngine   executive  = new StandardEngine(connection, null);

            mock.SetupGet(c => c.Executive).Returns(executive);
            string database = "IBIS";

            string[]        lines   = _GetLines();
            ResponseBuilder builder = new ResponseBuilder();

            foreach (string line in lines)
            {
                builder.AppendUtf(line);
                builder.NewLine();
            }
            byte[]         rawAnswer  = builder.Encode();
            byte[]         rawRequest = new byte[0];
            ServerResponse response   = new ServerResponse
                                        (
                connection,
                rawAnswer,
                rawRequest,
                true
                                        );

            MarcRecord[] records = MarcRecordUtility.ParseAllFormat
                                   (
                database,
                response
                                   );
            Assert.AreEqual(lines.Length, records.Length);
            for (int i = 0; i < records.Length; i++)
            {
                MarcRecord record = records[i];
                Assert.AreEqual(host, record.HostName);
                Assert.AreEqual(database, record.Database);
            }
        }
        public void DatabaseInfo_ParseServerResponse_1()
        {
            ResponseBuilder builder = new ResponseBuilder();

            // Physically deleted records
            builder.AppendUtf("1\x001E2\x001E3").NewLine()

            // Logically deleted records
            .AppendUtf("4\x001E5\x001E6").NewLine()

            // Non-actualized records
            .AppendUtf("7\x001E8\x001E9").NewLine()

            // Locked records
            .AppendUtf("10\x001E11\x001E12").NewLine()

            // Maximal MFN
            .AppendUtf("1000").NewLine()

            // Database locked?
            .AppendUtf("0").NewLine();

            IrbisConnection connection = new IrbisConnection();

            byte[]         query    = new byte[0];
            byte[]         answer   = builder.Encode();
            ServerResponse response = new ServerResponse
                                      (
                connection,
                answer,
                query,
                true
                                      );

            DatabaseInfo database = DatabaseInfo.ParseServerResponse(response);

            Assert.AreEqual
            (
                "Name: (null)\nDescription: (null)\nLogically deleted records: 4-6\nPhysically deleted records: 1-3\nNon-actualized records: 7-9\nLocked records: 10-12\nMax MFN: 1000\nRead-only: False\nDatabase locked: False\n",
                database.Describe().DosToUnix()
            );
        }