public void Serialize_AddsNameAttribute()
        {
            var classDefinitions         = MappingConfiguration.Current.GetTypeDefinitions();
            var groupedByStorageProvider = classDefinitions.Where(c => c.StorageEntityDefinition.StorageProviderDefinition is RdbmsProviderDefinition)
                                           .GroupBy(c => (RdbmsProviderDefinition)c.StorageEntityDefinition.StorageProviderDefinition)
                                           .First();

            var storageProviderSerializer = new StorageProviderSerializer(MockRepository.GenerateStub <IClassSerializer>());
            var actual = storageProviderSerializer.Serialize(groupedByStorageProvider, groupedByStorageProvider.Key);

            Assert.That(actual.Attributes().Select(a => a.Name.LocalName), Contains.Item("name"));
            Assert.That(actual.Attribute("name").Value, Is.EqualTo("SchemaGenerationFirstStorageProvider"));
        }
        public void Serialize_AddsClassElements()
        {
            var classDefinitions         = MappingConfiguration.Current.GetTypeDefinitions();
            var groupedByStorageProvider = classDefinitions.Where(c => c.StorageEntityDefinition.StorageProviderDefinition is RdbmsProviderDefinition)
                                           .GroupBy(c => (RdbmsProviderDefinition)c.StorageEntityDefinition.StorageProviderDefinition)
                                           .First();

            var classSerializerStub = MockRepository.GenerateStub <IClassSerializer>();
            var expectedElement     = new XElement("class");

            classSerializerStub.Stub(_ => _.Serialize(Arg <ClassDefinition> .Is.NotNull))
            .Return(expectedElement)
            .Repeat.Any();

            var storageProviderSerializer = new StorageProviderSerializer(classSerializerStub);
            var actual = storageProviderSerializer.Serialize(groupedByStorageProvider, groupedByStorageProvider.Key);

            Assert.That(actual.Elements(), Is.Not.Empty);
            Assert.That(actual.Elements().First(), Is.SameAs(expectedElement));
        }