public void SchemaWithArray()
        {
            StringBuilder result = GConfSchemaExtractorProgram.Extract(new Type [] { typeof(ArrayType) });

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ToString().Trim(), Is.EqualTo(@"
<?xml version=""1.0""?>
<gconfschemafile>
  <schemalist>
    <schema>
      <key>/schemas/apps/banshee/sources/fsq/current_filters</key>
      <applyto>/apps/banshee/sources/fsq/current_filters</applyto>
      <owner>banshee</owner>
      <type>list</type>
      <list_type>string</list_type>
      <default>[album,artist]</default>
      <locale name=""C"">
        <short></short>
        <long></long>
      </locale>
    </schema>
  </schemalist>
</gconfschemafile>"
                                                             .Trim()));
        }
        public void SchemaWithMoreThanOneKey()
        {
            StringBuilder result = GConfSchemaExtractorProgram.Extract(
                new Type [] { typeof(IntegerType), typeof(DoubleType), typeof(StringType) });

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ToString().Trim(), Is.EqualTo(@"
<?xml version=""1.0""?>
<gconfschemafile>
  <schemalist>
    <schema>
      <key>/schemas/apps/banshee/player_engine/volume</key>
      <applyto>/apps/banshee/player_engine/volume</applyto>
      <owner>banshee</owner>
      <type>int</type>
      <default>80</default>
      <locale name=""C"">
        <short>Volume</short>
        <long>Volume of playback relative to mixer output</long>
      </locale>
    </schema>
    <schema>
      <key>/schemas/apps/banshee/player_window/cover_art_size</key>
      <applyto>/apps/banshee/player_window/cover_art_size</applyto>
      <owner>banshee</owner>
      <type>float</type>
      <default>20.5</default>
      <locale name=""C"">
        <short>Cover art size</short>
        <long>Surface size of cover art in the album grid</long>
      </locale>
    </schema>
    <schema>
      <key>/schemas/apps/banshee/player_window/default_export_format</key>
      <applyto>/apps/banshee/player_window/default_export_format</applyto>
      <owner>banshee</owner>
      <type>string</type>
      <default>m3u</default>
      <locale name=""C"">
        <short>Export Format</short>
        <long>The default playlist export format</long>
      </locale>
    </schema>
  </schemalist>
</gconfschemafile>
"
                                                             .Trim()));
        }
        public void SchemaWithBoolean()
        {
            StringBuilder result = GConfSchemaExtractorProgram.Extract(new Type [] { typeof(BooleanType) });

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ToString().Trim(), Is.EqualTo(@"
<?xml version=""1.0""?>
<gconfschemafile>
  <schemalist>
    <schema>
      <key>/schemas/apps/banshee/import/show_initial_import_dialog</key>
      <applyto>/apps/banshee/import/show_initial_import_dialog</applyto>
      <owner>banshee</owner>
      <type>bool</type>
      <default>true</default>
      <locale name=""C"">
        <short>Show the Initial Import Dialog</short>
        <long>Show the Initial Import Dialog when the Banshee library is empty</long>
      </locale>
    </schema>
  </schemalist>
</gconfschemafile>"
                                                             .Trim()));
        }
        public void SchemaWithString()
        {
            StringBuilder result = GConfSchemaExtractorProgram.Extract(new Type [] { typeof(StringType) });

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ToString().Trim(), Is.EqualTo(@"
<?xml version=""1.0""?>
<gconfschemafile>
  <schemalist>
    <schema>
      <key>/schemas/apps/banshee/player_window/default_export_format</key>
      <applyto>/apps/banshee/player_window/default_export_format</applyto>
      <owner>banshee</owner>
      <type>string</type>
      <default>m3u</default>
      <locale name=""C"">
        <short>Export Format</short>
        <long>The default playlist export format</long>
      </locale>
    </schema>
  </schemalist>
</gconfschemafile>"
                                                             .Trim()));
        }
        public void SchemaWithDouble()
        {
            StringBuilder result = GConfSchemaExtractorProgram.Extract(new Type [] { typeof(DoubleType) });

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ToString().Trim(), Is.EqualTo(@"
<?xml version=""1.0""?>
<gconfschemafile>
  <schemalist>
    <schema>
      <key>/schemas/apps/banshee/player_window/cover_art_size</key>
      <applyto>/apps/banshee/player_window/cover_art_size</applyto>
      <owner>banshee</owner>
      <type>float</type>
      <default>20.5</default>
      <locale name=""C"">
        <short>Cover art size</short>
        <long>Surface size of cover art in the album grid</long>
      </locale>
    </schema>
  </schemalist>
</gconfschemafile>"
                                                             .Trim()));
        }
        public void SchemaWithInt()
        {
            StringBuilder result = GConfSchemaExtractorProgram.Extract(new Type [] { typeof(IntegerType) });

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ToString().Trim(), Is.EqualTo(@"
<?xml version=""1.0""?>
<gconfschemafile>
  <schemalist>
    <schema>
      <key>/schemas/apps/banshee/player_engine/volume</key>
      <applyto>/apps/banshee/player_engine/volume</applyto>
      <owner>banshee</owner>
      <type>int</type>
      <default>80</default>
      <locale name=""C"">
        <short>Volume</short>
        <long>Volume of playback relative to mixer output</long>
      </locale>
    </schema>
  </schemalist>
</gconfschemafile>"
                                                             .Trim()));
        }