// Convenience method for testing
        internal static IDictionary <string, object> ReadToDatabase(IEnumerable <byte> data, IDictionary <string, string> headers,
                                                                    Database db)
        {
            var realized = data.ToArray();

            if (realized.Length == 0)
            {
                throw new CouchbaseLiteException(StatusCode.BadJson);
            }

            var reader = new MultipartDocumentReader(db);

            reader.SetHeaders(headers);
            reader.AppendData(data);
            reader.Finish();

            return(reader.document);
        }
        public static IDictionary<string, object> ReadToDatabase(IEnumerable<byte> data, IDictionary<string, string> headers, 
            Database db)
        {
            var realized = data.ToArray();
            if (realized.Length == 0) {
                throw new CouchbaseLiteException(StatusCode.BadJson);
            }

            var reader = new MultipartDocumentReader(db);
            reader.SetHeaders(headers);
            reader.AppendData(data);
            reader.Finish();

            return reader.document;
        }