public void XmlRomInformationToProgramRomInformationConverter_CreateWithNullDatabaseAndConvertNullXmlInfo_ThrowsNullReferenceException()
        {
            XmlRomInformationToProgramRomInformationConverterTestProgramDatabase database = null;
            var converter = XmlRomInformationToProgramRomInformationConverter.Create(database);

            var xmlRomInformation = CreateTestInformationForConversion(XmlInformationKind.None);

            Assert.Throws <NullReferenceException>(() => converter.Convert(xmlRomInformation));
        }
        public void XmlRomInformationToProgramRomInformationConverter_CreateWithEmptyDatabaseAndConvertXmlInfo_ProducesValidConversion()
        {
            var database  = new XmlRomInformationToProgramRomInformationConverterTestProgramDatabase();
            var converter = XmlRomInformationToProgramRomInformationConverter.Create(database);

            var xmlRomInformation    = CreateTestInformationForConversion(XmlInformationKind.FullyPopulated);
            var convertedInformation = converter.Convert(xmlRomInformation);

            ValidateInformation(XmlProgramInformation, convertedInformation);
            ValidateDescription(XmlProgramDescription, convertedInformation);
            ValidateFeatures(XmlProgramFeatures.Value, convertedInformation.Features);
            ValidateMetadata(XmlProgramMetadata.Value, convertedInformation.Metadata);
        }
        public void XmlRomInformationToProgramRomInformationConverter_CreateWithDatabaseContaingMatchWithDefaultFeaturesAndConvertXmlInfo_ProducesValidConversion()
        {
            var database = new XmlRomInformationToProgramRomInformationConverterTestProgramDatabase();
            var testProgramInformation = new TestProgramInformation()
            {
                Features = ProgramFeatures.DefaultFeatures.Clone()
            };

            database.AddProgram(testProgramInformation);
            var converter = XmlRomInformationToProgramRomInformationConverter.Create(database);

            var xmlRomInformation    = CreateTestInformationForConversion(XmlInformationKind.FullyPopulated);
            var convertedInformation = converter.Convert(xmlRomInformation);

            ValidateInformation(testProgramInformation, convertedInformation);
            ValidateDescription(testProgramInformation.ToDescription(), convertedInformation);
            ValidateFeatures(XmlProgramFeatures.Value, convertedInformation.Features);
            ValidateMetadata(XmlProgramMetadata.Value, convertedInformation.Metadata);
        }